leetcode 30 串聯所有單詞的子串

2021-09-29 06:35:25 字數 992 閱讀 8290

給定乙個字串 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"]

輸出:

c++ 實現過程如下:

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 顯然從每個位置開始都要匹配...