1.题目描述
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
2.解法
解法一:回溯法
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if not digits:
return list()
res = list()
d_map = {'2':'abc', '3':'def', '4':'ghi', '5':'jkl', '6':'mno', '7':'pqrs', '8':'tuv', '9':'wxyz'}
def backtrack(S='', index=0):
if len(S) == len(digits):
res.append(S)
return
for char in d_map[digits[index]]:
backtrack(S+char, index+1)
backtrack()
return res