刷题记录 回溯算法-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
相关推荐
星空露珠4 分钟前
数独解题算法lua脚本
开发语言·数据结构·算法·游戏·lua
小猪咪piggy7 分钟前
【算法】day14 链表
数据结构·算法·链表
EnCi Zheng7 分钟前
LeetCode_1_两数之和完全解析-从暴力枚举到哈希表优化的算法进阶之路
算法
喆星时瑜9 分钟前
ComfyUI本地部署Stable Diffusion:核心组件(Python、PyTorch、CUDA)版本与显卡配置全指南
pytorch·python·stable diffusion
寂静山林12 分钟前
UVa 1620 Lazy Susan
算法
天选之女wow14 分钟前
【代码随想录算法训练营——Day51】图论——99.计数孤岛、100.最大岛屿的面积
算法·图论
大佬,救命!!!19 分钟前
定时打印的练习整理
linux·服务器·python·学习笔记·学习方法·定时发送
yy_xzz21 分钟前
【数据结构】队列(Queue)详解——数据结构的“先进先出”
开发语言·数据结构
南棱笑笑生24 分钟前
20251028在荣品RD-RK3588-MID开发板的Android13系统下解决关机的时候最近打开的应用不关的问题
开发语言·python·rockchip
红树林0733 分钟前
BeautifulSoup 的页面中需要获取某个元素的 xpath 路径
前端·python·网络爬虫·beautifulsoup