Leetcode打卡 | No.017 电话号码的字母组合


写在前边:

欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!


No.17 电话号码的字母组合

题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例:

输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。

题目分析:电话按键想必我们小伙伴再熟悉不过了吧。手机九宫格打起字来一个个溜的飞起!这个题目首先输入是一个数字字符串,每一个数字可以对应几个字母字符。所以首先可以考虑建立一个字典,以键值对的形式存放数据。之后逐位进行数字字符的处理(即对应字母组合拼接)。思路概括如下:

  1. 建立数字字符串和字母的对应关系,以键值对形式存在字典中
  2. 对数字字符串digits逐位处理进行匹配,这里对第 j 位进行处理的时候可以将j-1 位处理的结果拼接第 j 位对应的字符即可
  3. 注意拼接得到的输出形式为列表形式。

上述思路的代码如下:(一如既往,有详细注释)

其运行结果杠杠的~打败97.83%!

然而,同样的思路,网上大神写出来的代码就简洁不少了!!!自己看吧@-@

往期推荐

Leetcode打卡 | No.016 最接近的三数之和

原文发布于微信公众号 - 小詹学Python(xiaoxiaozhantongxue)

原文发表时间:2018-07-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏醒者呆

零件组装技术——建造者模式深度解析

建造者模式是最后一个创建型设计模式,也是研究对象的创建。 将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示。 创建和表示是什么意思...

395100
来自专栏老马说编程

计算机程序的思维逻辑 (14) - 类的组合

上节我们通过类Point介绍了类的一些基本概念和语法,类Point中只有基本数据类型,但类中的成员变量的类型也可以是别的类,通过类的组合可以表达更为复杂的概念。...

23690
来自专栏用户2442861的专栏

C++智能指针简单剖析

http://blog.csdn.net/lanxuezaipiao/article/details/41603883

6910
来自专栏PPV课数据科学社区

【学习】数据分析师的Python日记-第1天:谁来给我讲讲Python?

今天带来的是PYTHON,这是一篇非常有意思的文章。希望对大家有帮助。 ---- ---- 导语:或许是网上嘈嘈杂杂的关于大数据、互联网的新形势争论,或许是招聘...

21890
来自专栏Java学习网

Java中提高代码复用性的方法及规范总结

一个好的程序员一定是用最少的代码实现最多的功能,代码复用是程序员所追求和期望的,这也是Java语言所提倡的;根据以往开发经验整理了一些能够提高代码复用性方法和规...

47270
来自专栏斑斓

编程实践 | Scala亮瞎Java的眼(一)

这是我在11月15日成都OpenParty分享的一个题目,确有标题党的嫌疑。Scala自然不是无所不能,Java也没有这么差劲,我只希望给Java程序员提供另外...

35650
来自专栏AzMark

Python学习之面向对象

12530
来自专栏java学习

Java每日一练(2017/7/20)

最新通知 ●回复"每日一练"获取以前的题目! ●【新】Ajax知识点视频更新了!(回复【学习视频】获取下载链接) ●【新】HTML5知识点视频更新了!(回复【前...

27060
来自专栏walterlv - 吕毅的博客

从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配

发布于 2017-11-06 15:24 更新于 2018-02...

7710
来自专栏飞雪无情的博客

编写高效的Android代码

毫无疑问,基于Android平台的设备一定是嵌入式设备。现代的手持设备不仅仅是一部电话那么简单,它还是一个小型的手持电脑,但是,即使是最快的最高端的手持设备也远...

11430

扫码关注云+社区

领取腾讯云代金券