题目在这​​:https://leetcode-cn.com/problems/longest-word-in-dictionary/​

思路分析:

这道题题目描述不清楚,并没有说在哪里添加一个单词,如果是任意地方,那这道题的难度估计直接是hard了。
看了看评论区的大佬们,得知这道题只能在最后添加。

首先对字符串进行排序。排序过后,相同开头的单词,即可以逐步组成一个单词的几个元素一定是连续。

排序过后遍历,如果下一个元素去掉最后一个单词后和当前元素相等,则说明下一个元素可以通过当前元素添加一个元素构成,则将当前元素添加到集合中,然后判断当前长度是否是最大长度,是的话记录下来当前的字符串即可。

完整代码

class Solution:
def longestWord(self, words: List[str]) -> str:
maxword = ''
words.sort()
se = set()

for i in words:
if len(i) == 1 or i[:-1] in se:
se.add(i)
if len(i) > len(maxword):
maxword = i
print(maxword)
return