程序员面试金典16.20_go_T9键盘
题目在老式手机上 , 用户通过数字键盘输入 , 手机将提供与这些数字相匹配的单词列表 。 每个数字映射到0至4个字母 。
【程序员面试金典16.20_go_T9键盘】给定一个数字序列 , 实现一个算法来返回匹配单词的列表 。 你会得到一张含有有效单词的列表 。 映射如下图所示:
示例 1:输入: num = "8733", words = ["tree", "used"] 输出: ["tree", "used"]
示例 2:输入: num = "2", words = ["a", "b", "c", "d"] 输出: ["a", "b", "c"]
提示:num.length <= 1000
words.length <= 500
words[i].length == num.length
num中不会出现 0, 1 这两个数字
解题思路分析1、遍历;时间复杂度O(n^2) , 空间复杂度O(n)
文章插图
var m [26]byte = [26]byte{ '2', '2', '2', '3', '3', '3', '4', '4', '4', '5', '5', '5', '6', '6', '6', '7', '7', '7', '7', '8', '8', '8', '9', '9', '9', '9',}func getValidT9Words(num string, words []string) []string { res := make([]string, 0) for _, str := range words {if len(str) != len(num) {continue}flag := truefor i := 0; i < len(str); i++ {if num[i] != m[str[i]-'a'] {flag = falsebreak}}if flag {res = append(res, str)} } return res}
总结Medium题目 , 映射好数字字母对应关系即可
推荐阅读
- 程序员为教师妻子开发应用:将iPhone变成文档摄像头
- 悔哭!一程序员误把7500个比特币当垃圾扔掉,估算约2.4亿美元
- 2.4亿美元打水漂!程序员小哥把7500个比特币当垃圾扔掉 硬盘找不回
- 程序员开发抢茅台脚本:2天就刷榜Github
- 为什么我喜欢C语言,却非常讨厌C++?一位国外程序员的回答
- 程序员怎么保护头发?雷军回应
- 北美程序员Tinder翻车实录
- 导航|攻坚“卫星导航信号弱”难题,高德程序员联手武大学子夺得国际室内定位大赛冠军
- 长沙|视频|聚焦“数字英雄”长沙银行冠名全国首档程序员电视真人秀
- 孙玲|从流水线女工逆袭成高薪程序员 一度爆红的她现在咋样了?