Letter combinations of a phone number
class Solution:
def __init__(self):
self.letters = {"2": "abc", "3": "def", "4": "ghi", "5": "jkl",
"6": "mno", "7": "pqrs", "8": "tuv", "9": "wxyz"}
self.res = []
self.path = []
def backtrack(self, digits, index):
if index == len(digits):
if len(self.path) != 0:
self.res.append("".join(self.path))
return None
num = digits[index]
for i in self.letters[num]:
self.path.append(i)
self.backtrack(digits, index + 1)
self.path.pop()
return None
def letterCombinations(self, digits: str) -> List[str]:
index = 0
self.backtrack(digits, index)
return self.res
Letter Combinations of a Phone Number
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 digits 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 <= 4digits[i]is a digit in the range['2', '9'].