我的思路
- 先计算子串的字符的ascll码值的和,看看这个值是否相等,我认为可以筛掉一一部分
 - 就是子串和要比较的串排序比较是否相等
 
但是超时,样例太长了

题解思路
class Solution {
    public List<Integer> findAnagrams(String s, String p) {
        List<Integer> result = new ArrayList<>();
        if(s.length()<p.length()){
            return result;
        }
      int[] parr = new int[26];
      int[] sarr = new int[26];
        for (int i = 0; i < p.length(); i++) {
            parr[p.charAt(i)-'a']++;
            sarr[s.charAt(i) - 'a']++;
        }
        if(Arrays.equals(parr, sarr)){
            result.add(0);
        }
        for (int i = 0; i < s.length() - p.length(); ++i) {
            sarr[s.charAt(i)-'a']--;
            sarr[s.charAt(i+p.length()) - 'a']++;
            if (Arrays.equals(parr, sarr)){
                result.add(i+1);
            }
        }
        return result;
    }
}
 
其实应该也是双指针,关键是自己没想到两个数组怎么比较大小,其实也是统计字符次数




![[Unity Demo]从零开始制作空洞骑士Hollow Knight第四集:制作更多的敌人](https://i-blog.csdnimg.cn/direct/8c30067dd7ee4ad0956c7e050494dfc2.png)














