Leetcode初學 串聯所有單詞的子串

2021-10-02 09:53:58 字數 991 閱讀 4799

我認為這道題要做出來是不難的,主要是怎麼使他的效率變高

可惜我僅僅只是將這道題做出來,深感慚愧

我的思路可以算是滑動窗體吧

因為words中的每個單詞的長度相同,所以我們已知這個長度

以這個長度作為我們窗體的長度,在s中尋找是否有在words中存在的單詞

有的話,刪除words中存在的這個單詞,繼續往後找,如果中間斷開,則words恢復原樣

這裡,為了方便對words進行操作,我將words轉換為list

請看**:

class solution {

public listfindsubstring(string s, string words) {

listres=new arraylist();

liststr=new arraylist(arrays.aslist(words));

//如果s和words有一樣為空的話,那麼直接返回空列表

if(s.length()==0 || words.length==0) return res;

int n=words[0].length();

for(int i=0;i<=s.length()-n;i++){

//每次迴圈重新配置temp

listtemp=new arraylist();

temp.addall(str);

if(temp.contains(s.substring(i,i+n))){

int j=i+n;

//當s後面的字串長度小於words中所有單詞的總長度時,直接退出迴圈

if(s.length()-i執行結果如下:

LeetCode之串聯所有單詞的子串 30

給定乙個字串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。示例 1 輸入 s barfoothefoobarman words...

30 串聯所有單詞的子串 leetcode

好久沒刷題了。今天再刷題記錄下 給定乙個字串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。示例 1 輸入 s barfooth...

leetcode演算法 30 串聯所有單詞的子串

雜記所有題目源 git位址 題目給定乙個字串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。示例 1 輸入 s barfooth...