LeetCode1408-陣列中的字串匹配
阿新 • • 發佈:2020-11-28
非商業,LeetCode連結附上:
https://leetcode-cn.com/problems/string-matching-in-an-array/
進入正題。
題目:
給你一個字串陣列 words ,陣列中的每個字串都可以看作是一個單詞。請你按 任意 順序返回 words 中是其他單詞的子字串的所有單詞。
如果你可以刪除 words[j]最左側和/或最右側的若干字元得到 word[i] ,那麼字串 words[i] 就是 words[j] 的一個子字串。
示例:
示例 1:
輸入:words = ["mass","as","hero","superhero"]
輸出:["as","hero"]
解釋:"as" 是 "mass" 的子字串,"hero" 是 "superhero" 的子字串。
["hero","as"] 也是有效的答案。
示例 2:
輸入:words = ["leetcode","et","code"]
輸出:["et","code"]
解釋:"et" 和 "code" 都是 "leetcode" 的子字串。
示例 3:
輸入:words = ["blue","green","bu"]
輸出:[]
提示:
1 <= words.length <= 100
1 <= words[i].length <= 30
words[i] 僅包含小寫英文字母。
題目資料 保證 每個 words[i] 都是獨一無二的。
程式碼實現:
public List<String> stringMatching(String[] words) { List<String> res = new ArrayList<>(); if (words == null || words.length < 1) { return res; } String joinStr = String.join(",", words); for (String word : words) { if (joinStr.indexOf(word) != joinStr.lastIndexOf(word)) { res.add(word); } } return res; }
分析:
主要用到了String的幾個方法: join、indexOf、lastIndexOf。
--End