17. Letter Combinations of a Phone Number

Letter Combinations of a Phone Number - LeetCode

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”]

  • code
class Solution:
    def letterCombinations(self, digits: str) -> List[str]:
        if not digits: return None
        dic = {
            "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"]
        }
        
        res = []
        
        def backtracking(index, path):
            if index == len(digits):
                res.append("".join(path))
                return
            for char in dic[digits[index]]:
                backtracking(index + 1, path + [char])
                
        backtracking(0, [])
        
        return res