給定乙個字串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。
注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。
示例 1:
輸入:s = 「barfoothefoobarman」,
words = [「foo」,「bar」]
輸出:[0,9]
解釋:從索引 0 和 9 開始的子串分別是 「barfoo」 和 「foobar」 。
輸出的順序不重要, [9,0] 也是有效答案。
示例 2:
輸入:s = 「wordgoodgoodgoodbestword」,
words = [「word」,「good」,「best」,「word」]
輸出:
class
solution
//否則該單詞存在於words中,對應查詢map值加一
find_map[cur]++;
//此時可能存在一種情況,即該單詞出現次數過多,超過了words中的數量
//則將左邊界向右推進,將因推進而離開子串邊界的單詞從查詢map中去除
//直至該單詞的數量符合要求,注意推進會減少已經匹配單詞的數量。
while
(find_map[cur]
>word_map[cur]
)//處理後,如果匹配單詞的數量達到了words_len
//即目前的子串與words完全匹配,將其左邊界即子串起始位置索引返回
if(count==word_num) res.
push_back
(left);}
}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...