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

给定一组单词words,编写一个程序,找出其中的最长单词,且该单词由这组单词中的其他单词组合而成。若有多个长度相同的结果,返回其中字典序最小的一项,若没有符合要求的单词则返回空字符串。

示例:

输入: ["cat","banana","dog","nana","walk","walker","dogwalker"]
输出: "dogwalker"
解释: "dogwalker"可由"dog"和"walker"组成。

提示:

  • 0 <= len(words) <= 200
  • 1 <= len(words[i]) <= 100
通过次数
14.6K
提交次数
36K
通过率
40.6%


相关企业

提示 1
试着简化这个问题:如果你只需要知道由列表中其他两个单词组成的最长单词会如何?

提示 2
如果只想知道由列表中其他两个单词组成的最长单词,那么可以遍历全部单词,从最长到最短,检查每个单词是否可以由其他两个单词组成。为了检查,我们可以将字符串从所有可能的位置分开。

提示 3
将前面的想法扩展到多个单词的情况。我们能不能把每个单词都拆分为所有可能的形式?

提示 4
当你得到非常低效的递归算法时,试着查找重复发生的子问题。

评论 (0)

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