📘 LeetCode题解:构建最长单词(Longest Word in Dictionary)
在解决字符串与集合类问题时,我们经常会遇到需要“构造”的题目。本篇博客将详细解析 LeetCode 中一个非常有意思的题目:如何从一个字符串数组中找出最长的“可逐步构造”的单词。
🧩 题目描述
给定一个字符串数组 words
作为一本英语词典,请你返回其中最长的一个单词,它可以由字典中其他单词一个字母一个字母地添加在末尾构建而成。
- 如果有多个可行的结果,返回字典序最小的那个。
- 如果没有符合条件的单词,返回空字符串
""
。
⚠️ 注意事项:
- 构建过程必须逐步构建:例如,从
"a"
到"ap"
,再到"app"
,一步步添加一个字母。 - 每一步的中间结果都必须出现在词典
words
中。
🧠 解题分析
我们要从 words
中找出那些每个前缀也在 words
中的单词,并从中选择最长的一个。若有长度一样的候选词,则选字典序最小的。