720. Longest Word in Dictionary 字典中最长的单词
Given a list of strings words
representing an English Dictionary, find the longest word in words
that can be built one character at a time by other words in words
. If there is more than one possible answer, return the longest word with the smallest lexicographical order.
Example 1:
Input: words = ["w","wo","wor","worl", "world"] Output: "world" Explanation: The word "world" can be built one character at a time by "w", "wo", "wor", and "worl".
Example 2:
Input: words = ["a", "banana", "app", "appl", "ap", "apply", "apple"] Output: "apple" Explanation: Both "apply" and "apple" can be built from other words in the dictionary. However, "apple" is lexicographically smaller than "apply".
Note:
words
will be in the range [1, 1000]
.words[i]
will be in the range [1, 30]
.
/**
* @param {string[]} words
* @return {string}
*/
var longestWord = function (words) {
let res = "";
words = words.sort();
let set = new Set();
for (let i in words) {
let s = words[i];
if (s.length == 1 || set.has(s.substring(0, s.length - 1))) {
res = s.length > res.length ? s : res;
set.add(s);
}
}
return res;
};