参考别人的 首先给一个字典,解析出第一个数字,用来作为首字母排序用 ,然后依次填充入res
class Solution:
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
if not digits:
return []
digit2chars={
'2':'abc',
'3':'def',
'4':'ghi',
'5':'jkl',
'6':'mno',
'7':'pqrs',
'8':'tuv',
'9':'wxyz'
}
# res=[]
# for i in digit2chars[digits[0]]:
# res.append(i)
# 等价但是更便捷
res = [ i for i in digit2chars[digits[0]]]
#遍历每一个数字
for i in digits[1:]:
#m+n:m和n的不重叠组合
#for m in res: 迭代 前面所有数字对应字母的组合
#for n in digit2chars[i]:当前数字对应的所有字母
# for m in res:
# for n in digit2chars[i]:
# res.append(m+n)
# 一样是等价的不过更快
res = [ m+n for m in res for n in digit2chars[i] ]
return res