給定乙個字串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。
注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。
示例 1:
示例 2:輸入:
s = "barfoothefoobarman",
words = ["foo","bar"]
輸出:[0,9]
解釋:從索引 0 和 9 開始的子串分別是 "barfoo" 和 "foobar" 。
輸出的順序不重要, [9,0] 也是有效答案。
c++ 實現過程如下:輸入:
s = "wordgoodgoodgoodbestword",
words = ["word","good","best","word"]
輸出:
class solution
cmap_bak = cmap;
vector<
int> cres;
for(
int nidx =
0; nidx <= s.
size()
- wcount*wsize; nidx++
) iter->second--;}
if(bfind)
cres.
push_back
(nidx)
; cmap = cmap_bak;
}return cres;}}
;
執行結果:
通過顯示詳情
執行用時 :528 ms, 在所有 cpp 提交中擊敗了41.04% 的使用者
記憶體消耗 :100.2 mb, 在所有 cpp 提交中擊敗了20.37%的使用者
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 wo...
LeetCode 30 串聯所有單詞的子串
題目鏈結 題解 開個字典樹記錄下所有的單詞。然後注意題目的已知條件 每個單詞的長度都是一樣的。這就說明不會出現某個字串是另外乙個字串的字首的情況 除非相同 所以可以貪心地匹配 遇到什麼字元就在字典樹裡面沿著邊從根往下走就好 假設給的單詞的個數為len.每個單詞的長度都是l 顯然從每個位置開始都要匹配...