题目名称

给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。

如果你可以删除 words[j] 最左侧和/或最右侧的若干字符得到 word[i] ,那么字符串 words[i] 就是 words[j] 的一个子字符串。

示例

输入:words = [“mass”,”as”,”hero”,”superhero”]

输出:[“as”,”hero”]

解释:”as” 是 “mass” 的子字符串,”hero” 是 “superhero” 的子字符串。

[“hero”,”as”] 也是有效的答案。

题解

无难点,略

答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var stringMatching = function(words) {
words = words.sort((a,b) => a.length - b.length)
let arr = []
for(let i = 0; i < words.length - 1; i++) {
let word = words[i], flag = false
for(let j = i + 1; j < words.length && !flag; j++) {
if(words[j].includes(word)) {
flag = true;
arr.push(word)
}
}
}
return arr
};