leetcode第17题,排列组合,要求输出指定的按键输入中可能产生的字母排列组合。
首先,电话上的数字键对应的字母先要能储存起来,这里使用一个字典。另外,可以看到每增加一个数字键,其实就是在原有基础上在增加一个字母,因此可以用循环直接搞定。或者是利用dfs。
class Solution(object):
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
if len(digits) == 0:
return []
d = {"2":"abc","3":"def",'4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'}
ans = [c for c in d[digits[0]]]
for digit in digits[1:]:
chars = d[digit]
temp = []
for item in ans:
for char in chars:
temp.append(item+char)
ans = temp
return ans