Python实现电话号码的数字组合
题目描述
给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合
。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
LeetCode原题地址:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
测试用例
输入:“23”
输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].
代码实现
- 回溯法实现
from typing import Listclass Solution:def letterCombinations(self, digits: str) -> List[str]:if len(digits) == 0:return []#定义数字和字母的对应关系num_to_letter = {"2":"abc","3":"def","4":"ghi","5":"jkl","6":"mno","7":"pqrs","8":"tuv","9":"wxyz"}#用来保存最终的返回结果final_result = []#用来保存临时的组合结果le_com = []#利用回溯法来穷举def backtrack(index):#当递归完最后一个字符之后就拼接字符if index == len(digits):final_result.append("".join(le_com))else:#获取当前应该遍历的数字digit_s = digits[index]#遍历数字对应的字符串for s in num_to_letter[digit_s]:le_com.append(s)backtrack(index+1)le_com.pop()#开始进行递归backtrack(0)return final_resultsolution = Solution()
print(solution.letterCombinations("234"))
- 遍历树
class Solution:def letterCombinations(self, digits: str) -> List[str]:if len(digits) == 0:return []# 定义数字和字母的对应关系num_to_letter = {"2": "abc","3": "def","4": "ghi","5": "jkl","6": "mno","7": "pqrs","8": "tuv","9": "wxyz"}find_result = []def find_com_str(index,s):if index == len(digits):find_result.append(s)returnfor c in num_to_letter[digits[index]]:find_com_str(index+1,s+c)find_com_str(0,"")return find_result
参考:
- LeetCode回溯法解题思想
- LeetCode遍历树的解题思想
Python实现电话号码的数字组合相关推荐
- leetcode题解-17.电话号码的数字组合
电话号码的数字组合:link 1.题目分析 组合方式随着数字的增多是呈现为树状发散的方式,主要就是代码实现了. 2.示例代码 class Solution {public:vector<stri ...
- python程序设计练习1(数字组合、个税计算)
1.数字组合(考点:循环.运算符.if语句) 有四个数字1,2,3,4,它们能够组成多少个互不相同的三位数,要求在数字里面每个数字出现的频率只能为1次 # 最大数字为432,最小数字为123,只需要遍 ...
- 用Python将四个数字组合
5.(程序题)有四个数字:1.2.3.4,编程输出所有互不相同且无重复数字的三位数. num = (1, 2, 3, 4) count = 0 for i in num: for j in num: ...
- 电话号码的数字组合(Java)
思路是利用回溯解决,注意回溯的返回条件即可. class Solution {List<String> list=new ArrayList();Map<String,String& ...
- 0612-2020-LEETCODE_17_电话号码的数字组合
建议debug看一下,是一道好题. public List<String> letterCombinations1(String digits) {LinkedList<String ...
- python电话号码对应的字符组合_Python3 在字符串中提取字母+数字组合微信账号、电话等 - pytorch中文网...
今天处理数据要提取字符串中的微信,字符串中包含中文英文Emoji,标点符号等. python 提取字符串中的电话 提取电话相对简单,多个电话也可以提取 import re desstr = " ...
- python数字组合算法_python猜数字游戏快速求解解决方案
python猜数字游戏快速求解解决方案.使用方法: 1. 保存代码为guessall.py 2. 执行python guessall.py > result.txt 3. 打开result.tx ...
- python有四个数字_Python生成0-9任意4位数字组合的方法
玩蛇网本文是关于Python生成0-9任意4位数字组合的方法示例.0-9个数字组成任意4位数字,有多少种排列组合的方式,要是用想的需要不少时间而且还容易出错.用python方法来解决这个问题显然简单得 ...
- Python如何实现将四位数字组合成一个不重复的三位数,for循环暴力解法
Python如何实现将四位数字组合成一个不重复的三位数,for循环暴力解法 周末的时候遇到一个题目,看似很简单,但是在当时考试的情况下来说,我误判了,我没有把握好时间,导致我后面时间很紧,没有时间去思 ...
最新文章
- 阿里自动驾驶新突破!达摩院自研ISP图像处理器大幅提升安全性
- android 校讯通 源码,校讯通Android版使用说明.doc
- Golang学习笔记——Slice
- python最大约数是_python – 找到最大的公约数(赋值错误,我迫切需要你的帮助)
- java 子类必须实现_Java学习之接口的子类必须实现接口的全部方法吗?
- 华为Mate40 Pro渲染图曝光:刘海和瀑布屏一起消失
- 策略模式 (Strategy)
- 四阶龙格库塔法RK4在求解陀螺仪位姿中的应用
- 深度解析网易严选和京东的会员体系,建议收藏
- 辛意云教授讲《论语》
- Centos 7 内网安装 DzzOffice
- 接口试验。设计立体图形接口,包括计算表面积和体积的方法;设计圆柱体类和圆锥体类,分别实现立体图形接口,计算表面积和体积。
- 告诉你猪身上最香的部位是什么?五花肉不是最香
- 深度暗色调色效果Lr预设
- 学java选i5还是i7_选笔记本电脑,到底CPU是要选i5还是i7
- Android手机基本教程
- python删除数据框空行_Python删除空行
- DCC_2012_Sihong Su . Xiaohu Tang rotation symmetric boolean functions
- 泰克示波器MDO3014波形频率分析FFT功能使用方法
- Python顺序与选择结构