17 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
输入:digits = ""
输出:[]
输入:digits = "2"
输出:["a","b","c"]
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
number = ['', '', 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqrs', 'tuv', 'wxyz']
s = ''
res = []
def backtrack(digits, index, s):
if index == len(digits):
res.append(s)
return
n = int(digits[index])
letter = number[n]
for i in range(len(letter)):
s += letter[i]
backtrack(digits, index+1, s)
s = s[:-1]
backtrack(digits, 0, s)
return res