题目描述

给定一个仅包含数字 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

参考:

  1. LeetCode回溯法解题思想
  2. LeetCode遍历树的解题思想

Python实现电话号码的数字组合相关推荐

  1. leetcode题解-17.电话号码的数字组合

    电话号码的数字组合:link 1.题目分析 组合方式随着数字的增多是呈现为树状发散的方式,主要就是代码实现了. 2.示例代码 class Solution {public:vector<stri ...

  2. python程序设计练习1(数字组合、个税计算)

    1.数字组合(考点:循环.运算符.if语句) 有四个数字1,2,3,4,它们能够组成多少个互不相同的三位数,要求在数字里面每个数字出现的频率只能为1次 # 最大数字为432,最小数字为123,只需要遍 ...

  3. 用Python将四个数字组合

    5.(程序题)有四个数字:1.2.3.4,编程输出所有互不相同且无重复数字的三位数. num = (1, 2, 3, 4) count = 0 for i in num: for j in num: ...

  4. 电话号码的数字组合(Java)

    思路是利用回溯解决,注意回溯的返回条件即可. class Solution {List<String> list=new ArrayList();Map<String,String& ...

  5. 0612-2020-LEETCODE_17_电话号码的数字组合

    建议debug看一下,是一道好题. public List<String> letterCombinations1(String digits) {LinkedList<String ...

  6. python电话号码对应的字符组合_Python3 在字符串中提取字母+数字组合微信账号、电话等 - pytorch中文网...

    今天处理数据要提取字符串中的微信,字符串中包含中文英文Emoji,标点符号等. python 提取字符串中的电话 提取电话相对简单,多个电话也可以提取 import re desstr = " ...

  7. python数字组合算法_python猜数字游戏快速求解解决方案

    python猜数字游戏快速求解解决方案.使用方法: 1. 保存代码为guessall.py 2. 执行python guessall.py > result.txt 3. 打开result.tx ...

  8. python有四个数字_Python生成0-9任意4位数字组合的方法

    玩蛇网本文是关于Python生成0-9任意4位数字组合的方法示例.0-9个数字组成任意4位数字,有多少种排列组合的方式,要是用想的需要不少时间而且还容易出错.用python方法来解决这个问题显然简单得 ...

  9. Python如何实现将四位数字组合成一个不重复的三位数,for循环暴力解法

    Python如何实现将四位数字组合成一个不重复的三位数,for循环暴力解法 周末的时候遇到一个题目,看似很简单,但是在当时考试的情况下来说,我误判了,我没有把握好时间,导致我后面时间很紧,没有时间去思 ...

最新文章

  1. 阿里自动驾驶新突破!达摩院自研ISP图像处理器大幅提升安全性
  2. android 校讯通 源码,校讯通Android版使用说明.doc
  3. Golang学习笔记——Slice
  4. python最大约数是_python – 找到最大的公约数(赋值错误,我迫切需要你的帮助)
  5. java 子类必须实现_Java学习之接口的子类必须实现接口的全部方法吗?
  6. 华为Mate40 Pro渲染图曝光:刘海和瀑布屏一起消失
  7. 策略模式 (Strategy)
  8. 四阶龙格库塔法RK4在求解陀螺仪位姿中的应用
  9. 深度解析网易严选和京东的会员体系,建议收藏
  10. 辛意云教授讲《论语》
  11. Centos 7 内网安装 DzzOffice
  12. 接口试验。设计立体图形接口,包括计算表面积和体积的方法;设计圆柱体类和圆锥体类,分别实现立体图形接口,计算表面积和体积。
  13. 告诉你猪身上最香的部位是什么?五花肉不是最香
  14. 深度暗色调色效果Lr预设
  15. 学java选i5还是i7_选笔记本电脑,到底CPU是要选i5还是i7
  16. Android手机基本教程
  17. python删除数据框空行_Python删除空行
  18. DCC_2012_Sihong Su . Xiaohu Tang rotation symmetric boolean functions
  19. 泰克示波器MDO3014波形频率分析FFT功能使用方法
  20. Python顺序与选择结构

热门文章

  1. jdbc.properties 系统找不到指定路径问题
  2. Matlab错误使用 eval
  3. 基于浏览器请求的国际化实现
  4. mPEG-SCM 甲氧基PEG琥珀酰亚胺乙酸酯
  5. 游戏中的亚洲后现代电影
  6. 数字人民币APP上架,跨境交易将进入新境界
  7. 通过光盘安装Ubuntu18.04教程
  8. 【Relax人生法则之躺平方法论】如何优雅地躺平?那些看似无足轻重,实则细思极恐的毒鸡汤。
  9. 王者荣耀服务器维护公告5月8号,王者荣耀5月8日更新维护公告 5.8更新了什么
  10. Verilog HDL——运算符