LeetCode简单题之数组中的字符串匹配
題目
給你一個字符串?dāng)?shù)組 words ,數(shù)組中的每個字符串都可以看作是一個單詞。請你按 任意 順序返回 words 中是其他單詞的子字符串的所有單詞。
如果你可以刪除 words[j] 最左側(cè)和/或最右側(cè)的若干字符得到 word[i] ,那么字符串 words[i] 就是 words[j] 的一個子字符串。
示例 1:
輸入:words = [“mass”,“as”,“hero”,“superhero”]
輸出:[“as”,“hero”]
解釋:“as” 是 “mass” 的子字符串,“hero” 是 “superhero” 的子字符串。
[“hero”,“as”] 也是有效的答案。
示例 2:
輸入:words = [“l(fā)eetcode”,“et”,“code”]
輸出:[“et”,“code”]
解釋:“et” 和 “code” 都是 “l(fā)eetcode” 的子字符串。
示例 3:
輸入:words = [“blue”,“green”,“bu”]
輸出:[]
提示:
1 <= words.length <= 100
1 <= words[i].length <= 30
words[i] 僅包含小寫英文字母。
題目數(shù)據(jù) 保證 每個 words[i] 都是獨一無二的。
來源:力扣(LeetCode)
解題思路
??首先我們需要明確,如果一個字符串是另外一個字符串的子集的話,這個字符串的長度一定是不超過他的父串的,所以第一步就是先按照字符串的長度進(jìn)行排序,然后查看當(dāng)前字符串是否是后續(xù)字符串的子集。
class Solution:def stringMatching(self, words: List[str]) -> List[str]:words.sort(key=lambda x:len(x))temp=[]for i in range(len(words)):for j in range(i+1,len(words)):if words[i] in words[j]:temp.append(words[i])breakreturn temp
總結(jié)
以上是生活随笔為你收集整理的LeetCode简单题之数组中的字符串匹配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之爬楼梯
- 下一篇: LeetCode简单题之有多少小于当前数