我们先记录每一次按键对应的若干个按键(每一个记录为一个list)
然后 模仿全排列回溯法的求解方法
我们依次从每一个list中取一个
当取的个数==按键个数时
记录取的结果至一个res中
最后返回最终的res
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if digits == '':
return []
thisdict = {'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']}
reslist = []
for strval in digits:
reslist.append(thisdict[strval])
res = []
self.qpl(reslist,'',res)
return res
def qpl(self,left,lastres,allres):
if left == []:
allres.append(lastres)
else:
for letter in left[0]:
lastres += letter
self.qpl(left[1:],lastres,allres)
lastres = lastres[:-1]