- 不用递归
class Solution:
def letterCombinations(self, digits):
dic = {'2':'abc', '3':'def','4':'ghi', '5':'jkl', '6':'mno', '7':'pqrs', '8':'tuv', '9':'wxyz'}
if not digits:
return []
s = str(digits)[::-1]
l = ['']
l2 = []
for i in s:
for j in dic[i]:
l2 += [j+x for x in l]
l = l2
l2 = []
return l
- 用递归
dic = {'2':'abc', '3':'def','4':'ghi', '5':'jkl', '6':'mno', '7':'pqrs', '8':'tuv', '9':'wxyz'}
class Solution:
def recursive(self, st, res):
if not st:
return res
if not res:
res = ['']
res2 = []
cs = st.pop()
for c in cs:
res2 += [c+x for x in res]
return self.recursive(st, res2)
def letterCombinations(self, digits):
st = [dic[x] for x in str(digits)]
return self.recursive(st, [])