給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。
字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。
說明:字母異位詞指字母相同,但排列不同的字串。
不考慮答案輸出的順序。
示例 1:
輸入:s: "cbaebabacd" p: "abc"
輸出:[0, 6]
解釋:起始索引等於 0 的子串是 "cba", 它是 "abc" 的字母異位詞。
起始索引等於 6 的子串是 "bac", 它是 "abc" 的字母異位詞。
示例 2:
輸入:s: "abab" p: "ab"
輸出:[0, 1, 2]
思路:• 滑動視窗 + 左右指標的算;
• 用乙個 count 變數,來記錄視窗內是否包含了 p 的字元;當同一字元出現多次時,只記錄一次;
• 當包含時,停下來檢索視窗,看是否滿足長度,如果視窗太大,則縮小視窗;
• 直到視窗的長度,剛好等於 p 的長度。
classsolution
while(count == 0)
left++;}}
return
res;
}}
classsolution
if(right - left ==p.length()) res.add(left);
}return
res;
}}
438 找到字串中所有字母異位詞
給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。說明 字母異位詞指字母相同,但排列不同的字串。不考慮答案輸出的順序。示例 1 輸入 s cbaebabacd p abc...
438 找到字串中所有字母異位詞
給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。說明 字母異位詞指字母相同,但排列不同的字串。不考慮答案輸出的順序。示例 1 輸入 s cbaebabacd p abc...
438 找到字串中所有字母異位詞
給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。說明 字母異位詞指字母相同,但排列不同的字串。不考慮答案輸出的順序。示例 1 輸入 s cbaebabacd p abc...