package SlidingWindow
func findAnagrams(s string, p string) []int {
ns, np := len(s), len(p)
if ns < np {
return []int{}
}
result := []int{}
var pCount, sCount [26]int
for i := 0; i < np; i++ {
pCount[p[i]-'a']++
sCount[s[i]-'a']++
}
if pCount == sCount {
result = append(result, 0)
}
for i := np; i < ns; i++ {
sCount[s[i]-'a']++
sCount[s[i-np]-'a']--
if pCount == sCount {
result = append(result, i-np+1)
}
}
return result
}