import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
String s = "cbaebabacd", p = "abc";
System.out.println(solution.findAnagrams(s, p));
}
public List findAnagrams(String s, String p) {
List res = new ArrayList<>();
int m = s.length(), n = p.length();
if (m < n){
return res;
}
int[] sArr = new int[26];
int[] pArr = new int[26];
for (int i = 0; i < n; i++){
sArr[s.charAt(i) - 'a']++;
pArr[p.charAt(i) - 'a']++;
}
if (Arrays.equals(sArr, pArr)){
res.add(0);
}
// 滑动窗口进行比较
for (int i = 0; i < m - n; i++){
sArr[s.charAt(i) - 'a']--;
sArr[s.charAt(i + n) - 'a']++;
if (Arrays.equals(sArr, pArr)){
res.add(i + 1);
}
}
return res;
}
}