调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
中等
相关标签
相关企业
提示

在老式手机上,用户通过数字键盘输入,手机将提供与这些数字相匹配的单词列表。每个数字映射到0至4个字母。给定一个数字序列,实现一个算法来返回匹配单词的列表。你会得到一张含有有效单词的列表。映射如下图所示:

示例 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 这两个数字
通过次数
17.1K
提交次数
24.2K
通过率
70.5%


相关企业

提示 1
想想递归。

提示 2
你能递归地尝试所有的可能性吗?

提示 3
在现实世界中,我们应该知道一些前缀/子字符串是行不通的。例如,考虑数字33835676368。虽然3383确实对应于fftf,但是没有以fftf开头的单词。有没有什么办法对于这样的情况做特殊处理?

提示 4
trie可以帮助我们。如果将整个单词列表存储在trie中会怎样?

提示 5
我们可能会多次运行这个算法。如果做更多的预处理,这里有办法优化吗?

提示 6
通过预处理,实际上可以将查找时间降低到O(1)。

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
运行和提交代码需要登录
num =
"8733"
words =
["tree", "used"]
Source