题目描述:
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
输入:“23”
输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].
解题思路:
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
output = []
label = {"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']}
if len(digits) == 0:
return output
output = label[digits[0]]
for x in range(1, len(digits)):
tmp = []
for y in range(len(output)):
for z in range(len(label[digits[x]])):
tmp.append(output[y] + label[digits[x]][z])
output = tmp
return output
性能指标: