题目描述
解题思路
一开始想用暴力破解的方法来进行解题,就是循环。但是想到随着数字的增多,循环行不通。想到最近使用的一个人工智能助手,于是我把题目发送给了它,直接给出了递归的解决方法。递归分为两个条件,一个就是当列表中的元素的数目达到了数字的个数,那么将列表中的内容,加入了结果集中,否则急需将字典中对应的元素加入列表。
解题代码
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if len(digits)==0:
return []
mapping = {
'2': 'abc',
'3': 'def',
'4': 'ghi',
'5': 'jkl',
'6': 'mno',
'7': 'pqrs',
'8': 'tuv',
'9': 'wxyz'
}
def backtrack(index, path):
if index == len(digits):
result.append(''.join(path))
return
current_digit = digits[index]
for letter in mapping[current_digit]:
path.append(letter)
backtrack(index + 1, path)
path.pop()
result = []
backtrack(0, [])
return result