일하는/Algorithm, Coding

[LeetCode][릿코드][Python][#17] Letter Combinations of a Phone Number

김논리 2021. 11. 16. 10:52

https://leetcode.com/problems/letter-combinations-of-a-phone-number/

 

Letter Combinations of a Phone Number - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.

A mapping of digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.

 

Example 1:

Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]

Example 2:

Input: digits = ""
Output: []

Example 3:

Input: digits = "2"
Output: ["a","b","c"]

 

Constraints:

  • 0 <= digits.length <= 4
  • digits[i] is a digit in the range ['2', '9'].

digits의 최대 길이가 4이므로, 단순하게 for문을 이용하여 모든 경우를 다 구해도 된다.

class Solution(object):
    def letterCombinations(self, digits):
        letter = {
            '2': ["a", "b", "c"],
            '3': ["d", "e", "f"],
            '4': ["g", "h", "i"],
            '5': ["j", "k", "l"],
            '6': ["m", "n", "o"],
            '7': ["p", "q", "r", "s"],
            '8': ["t", "u", "v"],
            '9': ["w", "x", "y", "z"]}
        result = []
        for digit in digits:
            if not result:
                result = letter[digit]
            else:
                tmp = []
                for r in result:
                    for l in letter[digit]:
                        tmp.append(r+l)
                result = tmp
        return result