刷题记录 回溯算法-5:17.电话号码的字母组合

题目:17. 电话号码的字母组合

难度:中等

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

本题非常简单

直接套模板可以很快写出

而且无需剪枝优化

算是最省心的回溯题了

代码实现(python):

两种写法

数组记录组合:

复制代码
phone_map = {
    '2': 'abc',
    '3': 'def',
    '4': 'ghi',
    '5': 'jkl',
    '6': 'mno',
    '7': 'pqrs',
    '8': 'tuv',
    '9': 'wxyz',
}
class Solution:
    def backtracking(self, digits, path, ans):
        if len(path) == len(digits):
            ans.append(''.join(path[:]))
            return

        sets = phone_map[digits[len(path)]]
        for ch in sets:
            path.append(ch)
            self.backtracking(digits, path, ans)
            path.pop()

    def letterCombinations(self, digits: str) -> List[str]:
        if len(digits) == 0:
            return []
        ans = []
        self.backtracking(digits, [], ans)
        return ans

字符串记录组合:

复制代码
phone_map = {
    '2': 'abc',
    '3': 'def',
    '4': 'ghi',
    '5': 'jkl',
    '6': 'mno',
    '7': 'pqrs',
    '8': 'tuv',
    '9': 'wxyz',
}
class Solution:
    def backtracking(self, digits, path, ans):
        if len(path) == len(digits):
            ans.append(path)
            return

        sets = phone_map[digits[len(path)]]
        for ch in sets:
            path += ch
            self.backtracking(digits, path, ans)
            path = path[:-1]

    def letterCombinations(self, digits: str) -> List[str]:
        ans = []
        if len(digits) == 0:
            return ans
        self.backtracking(digits, '', ans)
        return ans
相关推荐
嫂子开门我是_我哥13 分钟前
第十五节:文件操作与数据持久化:让程序拥有“记忆”
开发语言·python
睡一觉就好了。18 分钟前
直接选择排序
数据结构·算法·排序算法
qq_4232339019 分钟前
实战:用Python开发一个简单的区块链
jvm·数据库·python
哈哈不让取名字23 分钟前
分布式日志系统实现
开发语言·c++·算法
芬加达25 分钟前
leetcode221 最大正方形
java·数据结构·算法
知无不研29 分钟前
实现一个整形栈
c语言·数据结构·c++·算法
夏鹏今天学习了吗32 分钟前
【LeetCode热题100(98/100)】子集
算法·leetcode·深度优先
DuHz33 分钟前
用于汽车应用的数字码调制(DCM)雷达白皮书精读
论文阅读·算法·自动驾驶·汽车·信息与通信·信号处理
李昊哲小课37 分钟前
机器学习核心概念与经典算法全解析
人工智能·算法·机器学习·scikit-learn
s石有八九44 分钟前
PDF/文档LLM作业批改:2025年研究现状、技术进展与研究空白
人工智能·python·pdf·教育·ai教育·作业批改