func findAnagrams(s string, p string) (res []int) { freq, curr := make([]int, 256), make([]int, 256) for _, r := range p { freq[r]++ } m, n := len(s), len(p) ss := []rune(s) for i := 0; i < m; i++ { curr[ss[i]]++ if n-1 <= i { same := true for j := 'a'; j <= 'z'; j++ { if freq[j] != curr[j] { same = false } } if same { res = append(res, i-n+1) } curr[ss[i-n+1]]-- } } return }