leetcode 30 串聯所有單詞的子串

2021-10-11 09:17:12 字數 1255 閱讀 9965

使用字典+滑動視窗

每次選擇 words長度的視窗,判斷視窗內是否正好包含words所有單詞。如果是,記下視窗左指標的位置,否則整體視窗向右移動一位。

import copy

class

solution

(object):

deffindsubstring

(self, s, words)

:"""

:type s: str

:type words: list[str]

:rtype: list[int]

"""wordlen =

len(words[0]

) word_dict =

for w in words:

if w in word_dict:

word_dict[w]+=1

else

: word_dict[w]=1

wordsnum =

len(words)

res =

for i in

range

(len

(s)-wordsnum*wordlen+1)

: l = i

r = i+wordsnum*wordlen

wd = copy.deepcopy(word_dict)

flag =

true

for j in

range

(l,r,wordlen)

: w = s[j:j+wordlen]

if w in wd:

wd[w]-=1

if wd[w]

<0:

flag =

false

break

else

: flag =

false

break

if flag:

for w in wd.keys():

if wd[w]!=0

: flag=

false

continue

if flag:

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...