电话号码的字母组合
日期:2023.9.25
题目地址:电话号码的字母组合
题目介绍
题目分析
这个是一个很典型的回溯算法题,可以通过这个题目来很好的了解学习巩固回溯算法。
代码
def backtrack(state, index, res):
# 判断是否为结果
if len(state) == len(digits):
res.append(state)
return
choices = dic.get(digits[index], '')
for i in range(len(choices)):
temp = state
state += choices[i]
backtrack(state, index+1, res)
# 回退
state = temp
dic = {'2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl',\
'6': 'mno', '7': 'pqrs', '8': 'tuv', '9': 'wxyz'}
if len(digits) == 0:
return []
res = []
backtrack('', 0, res)
return res