# 720. 词典中最长的单词
TIP
给出一个字符串数组words
组成的一本英语词典。从中找出最长的一个单词,该单词是由words
词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。
若无答案,则返回空字符串。
# 示例
输入:
words = ["w","wo","wor","worl", "world"]
输出:"world"
解释:
单词"world"可由"w", "wo", "wor", 和 "worl"添加一个字母组成。
输入:
words = ["a", "banana", "app", "appl", "ap", "apply", "apple"]
输出:"apple"
解释:
"apply"和"apple"都能由词典中的单词组成。但是"apple"的字典序小于"apply"。
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 解答
- 自己的答案
/**
* @param {string[]} words
* @return {string}
*/
var longestWord = function(words) {
let result = []
let j=1
for(let i=0;i<words.length;i++) {
while(j<words.length) {
if(words[j].length - words[i].length===1 && words[j].includes(words[i])) {
result.push(words[j])
}
j++
}
j=1
}
let map = new Map()
for(let i of result) {
if(map.has(i.length)) {
if(map.get(i.length) > i) {
map.set(i.length,i)
}
} else {
map.set(i.length,i)
}
}
return map.get(Math.max(...map.keys()))
// console.log(map.keys())
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29