給定乙個字串 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]
解釋:起始索引等於 0 的子串是 「ab」, 它是 「ab」 的字母異位詞。
起始索引等於 1 的子串是 「ba」, 它是 「ab」 的字母異位詞。
起始索引等於 2 的子串是 「ab」, 它是 「ab」 的字母異位詞。
//解法1.滑動視窗
public list
findanagrams
(string s, string p)
while
(rightlength()
)if(right-left==p.
length()
&&same
(freq_s,freq_p))}
return ret;
}private
boolean
same
(int
freq_s,
int[
] freq_p)
return
true
;}
leetcode438 找到字串中所有字母異位詞
其實我的演算法並不是強項,然後今天在做438這道題的時候發現了乙個讓我無比佩服的思路,這裡記錄一下和大家分享 首先看一下題目 給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 201...
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...