17. Letter Combinations of a Phone Number
Medium
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.
Solution
from itertools import product
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if len(digits) == 0:
return []
elif len(digits) == 1:
return phone[digits]
else:
return ["".join(r) for r in product(*[phone[d] for d in digits])]
phone = {
"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"],
}