class Solution(object):
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
# 233
# 0 1 2 3 4 5 6 7 8 9
self.ss = ['', '', 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqrs', 'tuv', 'wxyz']
self.dights = digits
self.res = []
self.trackback('',0)
return self.res
def trackback(self,temp,index):
# temp 表示暂存的字符串
# index 表示现在的位数
if index == len(self.dights):
self.res.append(temp)
return # 结束
# 第index位取数
c = self.dights[index]
c = int(c)
for i in self.ss[c]:
self.trackback(temp+i,index+1)
"""
def backtrack():
if xxxxx:
result.append(path)
for xxxxx:
backtrack()
backtrack()
return result
"""
if __name__ == '__main__':
S = Solution()
print(S.letterCombinations('777'))
递归法,这种东西能够体现出美。
def backtrack():
if xxxxx:#这是结束条件
result.append(path) # 状态更新
return
for xxxxx:# 遍历条件
backtrack()# 递归状态
backtrack() # 开始条件
1万+

被折叠的 条评论
为什么被折叠?



