class Solution {public ListInteger findAnagrams(String s, String p) {ListInteger res new ArrayList();int[] need new int[26];int[] window new int[26];int lenP p.length();int lenS s.length();if (lenS lenP) return res;// 统计p的字符for (char c : p.toCharArray()) {need[c - a];}int left 0;for (int right 0; right lenS; right) {// 加入右指针字符char cur s.charAt(right);window[cur - a];// 窗口超过长度收缩左边if (right - left 1 lenP) {window[s.charAt(left) - a]--;left;}// 窗口正好等于p长度判断是否相等if (right - left 1 lenP) {if (Arrays.equals(window, need)) {res.add(left);}}}return res;}}