
17. 电话号码的字母组合
发布日期:2021-05-06 11:08:48
浏览次数:24
分类:精选文章
本文共 1295 字,大约阅读时间需要 4 分钟。

深度搜索
class Solution: def letterCombinations(self, digits: str) -> List[str]: ans = [] if not digits: return ans phoneMap = { "2": "abc", "3": "def", "4": "ghi", "5": "jkl", "6": "mno", "7": "pqrs", "8": "tuv", "9": "wxyz",} def backtrack(position, sub_res): if len(sub_res) == len(digits): ans.append("".join(sub_res[:])) return for i in range(position, len(digits)): position = position + 1 for j in range(len(phoneMap[digits[i]])): sub_res.append(phoneMap[digits[i]][j]) backtrack(position, sub_res) sub_res.pop() # position = position - 1 backtrack(0, []) return ans
广度搜索
class Solution: def letterCombinations(self, digits: str) -> List[str]: if not digits: return [] phone = ['abc','def','ghi','jkl','mno','pqrs','tuv','wxyz'] queue = [''] # 初始化队列 for digit in digits: for _ in range(len(queue)): tmp = queue.pop(0) for letter in phone[int(digit)-2]: queue.append(tmp + letter) return queue
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月06日 11时17分05秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
结构型设计在工作中的一些经验总结
2019-03-04
OpenAI Gym简介及初级实例
2019-03-04
Java面向对象
2019-03-04
JAVA带标签的break和continue
2019-03-04
(C++11/14/17学习笔记):线程启动、结束,创建线程多法、join,detach
2019-03-04
HTML 和 CSS 简单实现注册页面
2019-03-04
875 爱吃香蕉的珂珂(二分查找)
2019-03-04
Dijkstra算法的总结
2019-03-04
Vue实现选项卡功能
2019-03-04
vue中接收后台的图片验证码并显示
2019-03-04
趣谈win10常用快捷键
2019-03-04
王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
2019-03-04
JDK 内置的多线程协作工具类的使用场景
2019-03-05
Java 中哪些对象可以获取类对象
2019-03-05
11.2.6 时间值的小数秒
2019-03-05
Redis源码分析(七)--- zipmap压缩图
2019-03-05
自定义Hive Sql Job分析工具
2019-03-05
【MySQL】(九)触发器
2019-03-05