九宫格键盘输入

Letter Combinations of a Phone Number

给定一个数字字符串,返回数字可能代表的所有可能的字母组合。

数字到字母的映射(就像九宫格电话按钮一样)如下图。

Given a digit string, return all possible letter combinations that the number could represent.

A mapping of digit to letters (just like on the telephone buttons) is given below.

Note:

Although the above answer is in lexicographical order, your answer could be in any order you want.

example 1

Input:Digit string "23"

Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

思路

以23为例,2代表abc,只需要将其转换成lists = [a,b,c],然后处理3,3为def,将这三个字符分别加到s的每一个元素中,得到["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]。重复此过程即可。

上述思路可以用循环完成,同时python提供的reduce函数和生成式特性能够精炼地表述,下面给出两种代码。

代码

class Solution(object):

def letterCombinations(self, digits):

"""

:type digits: str

:rtype: List[str]

"""

from functools import reduce #python3.x

if not digits:

return []

nums = '0 1 abc def ghi jkl mno pqrs tuv wxyz'.split(' ')

return reduce(lambda last, d: [x + y for x in last for y in nums[int(d)]], digits, ['']) # 第三个参数是initial

#使用循环完成

def letterCombinations_old(self, digits):

if not digits:

return []

nums = '0 1 abc def ghi jkl mno pqrs tuv wxyz'.split(' ')

ret = [_ for _ in nums[int(digits[0])]]

digits = digits[1:]

while digits:

ret = [x + y for x in ret for y in nums[int(digits[0])]]

digits = digits[1:]

return ret

本题以及其它leetcode题目代码github地址: github地址

文章来源:segmentfault,作者:冯了个杰。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:william.shi#ucloud.cn(邮箱中#请改为@)进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

后台-系统设置-扩展变量-手机广告位-内容正文底部

python 键盘输入数字_九宫格键盘输入相关推荐

  1. 安卓键盘加上数字_安卓键盘键值对照表

    Android 键盘 Key 值对照表 键码 常数 值 描述 vbKeyLButton 1 鼠标左键 vbKeyRButton 2 鼠标右键 vbKeyCancel 3 CANCEL 键 vbKeyM ...

  2. c语言实验输入数字星期输出英文,输入数字星期,输出英文

    Problem G: C语言实验--输入数字星期,输出英文(选择结构-switch) Time Limit:1 Sec Memory Limit: 64 MB Submit:205 Solved:12 ...

  3. Java黑皮书课后题第4章:*4.11(十进制转十六进制)编写程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数。对于不正确的输入数字,提示非法输入

    *4.11(十进制转十六进制)编写程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数.对于不正确的输入数字,提示非法输入 题目 题目概述 运行示例 破题 代码 题目 题目概述 *4.11 ...

  4. python 键盘输入数字_python实现键盘输入的实操方法

    python实现键盘输入的实操方法 python中有指定的代码进行输入操作,所以今天就由小编来为大家介绍python怎么实现键盘输入. 第一首先打开电脑的python编辑工具. 再创建python项目 ...

  5. python限制user输入字母_限制input输入内容 只允许数字 或者 字母

    只能输入数字: 有回显 只能输入数字:无回显 function IsNum(e) { var k = window.event ? e.keyCode : e.which; if (((k >= ...

  6. python输入数字排序_Python 对输入的数字进行排序的方法

    Python 对输入的数字进行排序的方法 要求,输入一串数字,并以列表的形式打印出来. number = input('请输入一串数字:') print(number) print(type(numb ...

  7. vueinput里只能输入数字_大佬们,vue里面 限制input只能输入数字怎么做啊?

    可以参考下面的,目前这个是限制,只能输入数字,小数点只保留2位,限制不能输入空格 new Vue({ el: "#app", data: { a: "" }, ...

  8. uni判断输入的是否是数字_如何判断输入的字符串是否为数字?

    问题阐述 在 C 中,如何判断输入的字符串是否为数字? 专家解答 1.知识点介绍 开发程序时,经常需要判断输入的字符串是否为数字,例如,判断输入的电话号码.货币金额和邮编等.在程序中判断是否为数字的方 ...

  9. python实现输入输出界面_命令行输入/输出的图形用户界面

    对于python初学者来说,开发GUI是一个很大的项目,有几种可能做到这一点.如果您想用Python开发GUI应用程序,我建议您通过pyside或pyqt尝试Qt4或Qt5.您可能需要一个或多个教程, ...

最新文章

  1. 给图像特征提取开个“ViP”是什么效果?字节牛津提出视觉解析器,全面超越HaloNet!...
  2. linux后台运行python脚本
  3. google drive的压缩包直接解压到google drive
  4. 前端学习(1182):差值表达式
  5. 多线程java_40个Java多线程问题总结
  6. Flutter实战之Android混合开发初探
  7. C#连接控制西门子PLC
  8. 傅立叶变换描述子 matlab,[傅里叶变换matlab]傅里叶变换的Matlab代码与注释
  9. CISSP认证科普,涨姿势
  10. 中国国内开源网站都有哪些呢?
  11. IE9环境下。LODOP打印,首次打印时,图片加载不出来、加载不完全问题
  12. 利用npn开关电路,将stm32 IO口输出的0-3.3v的pwm波转换为0-5v的pwm波
  13. 墨羽卿画第二章第5节:另一个世界,腊月廿四
  14. gitlab流水线自动部署流程
  15. FontMetrics的相关函数
  16. python编写一个函数,输入n为偶数时,调用函数求1 / 2 + 1 / 4 + ... + 1 / n, 当输入n为奇数时,调用函数1 / 1 + 1 / 3 + ... + 1 / n(指针函数
  17. 配置selenium 启动 Chromium
  18. Leetcode日练笔记31 #19 #206 # 203 Rmv Nth Node From End Reverse Linked List Rmv Linked List Elements
  19. Eclipse背景主题设置
  20. 硬科技的时代之路,镁客网与你一起见证!

热门文章

  1. 怎么改变表单option标签直接字体大小_不起眼却非常重要的表单交互
  2. oracle solaris 内核 源码,直接安装内核区域
  3. 创建启动oracle快捷方式,GNOME3创建连接OracleFS管理软件启动快捷方式
  4. mysql数据库安全机制研究意义_MySQL数据库的安全机制
  5. cmos和ttl_TTL电平和CMOS电平的区别
  6. MATLAB警告: 矩阵为奇异工作精度
  7. python之socket编程
  8. Java消息服务~@JmsListener集成
  9. 2 如何设置窗口title_如何设置华为4G路由2的WiFi黑白名单【设置方法】
  10. python注册系统_Python制作简易注册登录系统