leetcode 30 串聯所有單詞的子串

2021-10-10 11:29:13 字數 590 閱讀 2608

滑動視窗

將字串s分為多個長度的w(每個單詞長度)的子區間,

使用hash儲存words中每個單詞的個數

再開乙個hash儲存遍歷時的每個單詞

用cnt來記錄子串中合法的單詞個數

每次遍歷,和m*w之前的那個單詞比較,如果單詞在第乙個開的hash中,就減去那個單詞

判斷新的單詞是不是儲存在hash裡且不超過words中的那個單詞的個數,如果是,代表這個單詞為合法單詞,cnt+1,

當cnt和m(words.size)相等時,即為一組結果,將j-(m-1)*w存入結果集

class

solution

string word = s.

substr

(j,w)

; wd[word]++;

if(wd[word]

<= tot[word]

) cnt++;if

(cnt == m) res.

push_back

(j-(m-1)

*w);}}

return res;}}

;

leetcode 30 串聯所有單詞的子串

leetcode題目鏈結 題目要求 找出 由words陣列組成的字串 每乙個元素word等長 在字元轉s中的位置 陣列words生成的字典dic2 遍歷字串,從頭開始判斷長度為lenwords的字串 生成的字典dic1 如果dic1 與 dic2 相同,說明找到 def findsubstring ...

leetcode 30 串聯所有單詞的子串

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

leetcode 30 串聯所有單詞的子串

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