题目描述
解题思路
一开始想用暴力破解的方法来进行解题,就是循环。但是想到随着数字的增多,循环行不通。想到最近使用的一个人工智能助手,于是我把题目发送给了它,直接给出了递归的解决方法。递归分为两个条件,一个就是当列表中的元素的数目达到了数字的个数,那么将列表中的内容,加入了结果集中,否则急需将字典中对应的元素加入列表。
解题代码
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))returncurrent_digit = digits[index]for letter in mapping[current_digit]:path.append(letter)backtrack(index + 1, path)path.pop()result = []backtrack(0, [])return result