438.M 找到字符串中所有字母异位词
思路
Code
func findAnagrams(s string, p string) []int {
if len(s) < len(p) {
return nil
}
var res []int
var pCount [26]int
var sCount [26]int
for i, ch := range p {
pCount[ch-'a']++
sCount[s[i]-'a']++
}
if pCount == sCount {
res = append(res, 0)
}
for i, ch := range s[:len(s)-len(p)] {
sCount[ch-'a']--
sCount[s[i+len(p)]-'a']++
if sCount == pCount {
res = append(res, i+1)
}
}
return res
}Last updated