当前位置: 首页 > article >正文

python回溯求解电话号码组合

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

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
在这里插入图片描述

输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:

输入:digits = ""
输出:[]
示例 3:

输入:digits = "2"
输出:["a","b","c"]

暴力枚举法

class Solution:
    def letterCombinations(self, digits: str):
        ans, dct = [""], {'2': "abc", '3': "def", '4': "ghi", '5': "jkl", '6': "mno", '7': "pqrs", '8': "tuv", '9': "wxyz"}
        for c in digits:
            ans = [s1 + s2 for s1 in ans for s2 in dct[c]]
        return ans if ans[0] else []

回溯法

class Solution:
    def letterCombinations(self, digits: str):
        if not digits:
            return list()
        
        phoneMap = {
            "2": "abc",
            "3": "def",
            "4": "ghi",
            "5": "jkl",
            "6": "mno",
            "7": "pqrs",
            "8": "tuv",
            "9": "wxyz",
        }

        def backtrack(index: int):
            if index == len(digits):
                combinations.append("".join(combination))
            else:
                digit = digits[index]
                for letter in phoneMap[digit]:
                    combination.append(letter)
                    backtrack(index + 1)
                    combination.pop()

        combination = list()
        combinations = list()
        backtrack(0)
        return combinations

http://www.kler.cn/news/148196.html

相关文章:

  • PHP 双门双向门禁控制板实时监控源码
  • mysql命令行连接数据库
  • 【数据结构】C : 追星
  • 进入docker容器
  • 【Web】PHP反序列化刷题记录
  • React入门使用 (官方文档向 Part1)
  • 体验一下压行的快乐~
  • python的itertools库
  • react的开发中关于图片的知识
  • [CLickhouse] 学习小计
  • 人工智能应用:文本分类的技术突破与实战指导
  • 学术科研常用工具
  • Flask 使用Jinja2模板引擎
  • 基于scrapy框架的腾讯招聘信息网络爬虫设计与实现
  • 「go module」一文总结 go mod 入门使用
  • 做外贸想赚客户的钱,先想想自己比别人强在哪
  • risc-v异常处理
  • MySQL实现高可用方案-MHA安装及配置
  • 构建 App 的方法
  • 浅谈硬件连通性测试几大优势
  • Android frameworks 开发总结之十(lock screen message Battery Last full charge)
  • 异步爬虫提速实践-在Scrapy中使用Aiohttp/Trio
  • 【Java】实现一个自己的线程池
  • 基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度matlab程序
  • Slf4j使用Logback时,Logback如何初始化
  • 大语言模型损失函数详解
  • 【论文阅读笔记】Smil: Multimodal learning with severely missing modality
  • paddleocr笔记
  • cocos2dx ​​Animate3D(二)
  • 【TiDB】TiDB离线方式部署