17. 电话号码的字母组合——回溯组合

news/2024/10/24 4:42:34/

回溯章节的典型17. 电话号码的字母组合。探究利用回溯解决字母的组合问题
回溯的本质就是暴力算法,首先把映射字典related,路径path(也就是其中一个字母组合)以及总结果res写出来。

    def __init__(self):self.path = []self.res = []self.related = {'1':'','2':'abc','3':'def','4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'}

示例:

输入:digits = “23”
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]

每一次,我们都选第一个数字digits[0] 进行处理,找出他的映射self.related[digits[0]进行遍历选择,然后递归调用它之后的数字。
例如,在示例中,我们选中2,得到映射abc,每一次我们将其中一个字母放进path中(以a为例),得到path = ['a'],然后递归self.combine(digits[1:])去处理3

结束条件为传入的digits为空的时候,说明没有需要处理的数字了,此时我们将路径传入总结果res中。

总体代码如下:

class Solution:def __init__(self):self.path = []self.res = []self.related = {'1':'','2':'abc','3':'def','4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'}def combine(self, digits):if not digits:self.res.append(''.join(self.path))returnfor letter in self.related[digits[0]]:self.path.append(letter)self.combine(digits[1:])self.path.pop()def letterCombinations(self, digits: str) -> List[str]:if not digits: return []self.combine(digits)return self.res

http://www.ppmy.cn/news/797058.html

相关文章

守心拓路 创变先行 第十七界玄奘之路戈壁挑战赛,华硕战力再竞化

守心拓路 创变先行|第十七界玄奘之路戈壁挑战赛,华硕战力再竞化 第十七届玄奘之路戈壁挑战赛于2023年4月29日至5月4日在甘肃敦煌&瓜州成功举办。大漠、黄沙、狂风、烈日,丛密的骆驼刺、荒凉的山脊、绝境下的孤独......华硕勇士们再次踏上…

2014年终总结–家

2014 前言 这风铃 跟心动很接近 这封信 还在怀念旅行 路过的爱情都 太年轻 你是我想要 再回去的 风景 ------《手写的从前》周杰伦 周杰伦又在冬天出新专辑了,虽然现在已经不像中学时候那样不断的去听他的磁带,可是在仍然年轻的冬天里听到新歌还是会有些…

越来越多中国企业为高通打call:移动计算走向更大舞台

前几天问世的vivo X20 Plus屏幕指纹版一天之内在社交网站刷出了几百米,吸睛之处不外乎两点:其一,全球第一款屏下指纹手机来自于中国厂商;其二,搭载了高通骁龙660处理器。客观来说,全面屏手机当道的今天&…

显示/隐藏效果

显示/隐藏效果 html: <body><ul class"uls"><li>华硕-破晓 宏碁-ConceptD</li><li>Redolbook</li><li>联想-小新</li><li>Proa豆-adolbook</li><li>16华硕-灵耀14</li><li>16华硕-灵…

王者荣耀cpu测试软件,王者荣耀90帧模式实测:骁龙888对比骁龙865,谁最强?

【科技犬】 《王者荣耀》已经提供了90帧率模式的开关按钮。目前开放的机型如下&#xff1a;华为 nova 8 Pro、一加 8T、一加 8、OPPO Reno5 Pro、OPPO Find X2、OPPO Find X2 Pro、OPPO Ace2、iQOO Neo3、iQOO 5、iQOO 5 Pro、iQOO 7、vivo X60 Pro、荣耀 V40、华硕 ROG 3、华硕…

adb日常使用命令

重启电脑adb服务 adb start-server和adb kill-server mac中uiautoviewer的位置 android-sdk→tools→bin→uiautomatorviewer.bat adb查看本机abi类型 adb shell getprop ro.product.cpu.abi github 比较好的adb教程&#xff1a; https://github.com/mzlogin/awesome-adb a…

【图像翻译GAN】我家那只蠢猫更像狗子还是更像虎哥?让AI模型来看看

前言 当忠诚的狗狗与凶猛的大老虎进行身份交换 老虎看起来也并没有那么凶残 甚至多了几分可爱 当可爱的猫咪与大老虎发生变换 猫猫的眼神里也多了几分坚定 而且充满了凶猛的气息 这是什么神仙操作&#xff1f; 它叫图像翻译&#xff01; 凡是从一张图变成另外一张图的操作 都可…

配置MacBook Pro新电脑,用于前端开发

最近换了新的MacBook Pro&#xff0c;因为从事前端开发工作&#xff0c;每次配置环境都没有条理性&#xff0c;这次做一个记录&#x1f4dd; 装机软件清单&#x1f9fe;&#xff1a; 1.微信&#xff1a;方便与同事家庭等联系 2.Google Chrome浏览器&#xff1a;登陆Google账号…