刷题记录 回溯算法-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
相关推荐
wen_zhufeng14 分钟前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习
大熊背1 小时前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline
一米阳光86611 小时前
软考(中级)软件设计师核心笔记(9)算法——背包问题
笔记·算法·职场发展·软考·软件设计师·中级职称
Minner-Scrapy1 小时前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
晚风醉蝶1 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
CODER03041 小时前
Anaconda和Mamba创建环境管理包常用命令合集
python·深度学习·conda·虚拟环境·mamba·常用命令大全
旖旎夜光1 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
闲猫1 小时前
LangGraph / Capabilities / Fault tolerance
python·agent·langgraph
IvanCodes2 小时前
Python 基础语法(一):变量、数据类型与运算符
python
程序员三藏3 小时前
浅谈性能测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试