https://leetcode.cn/problems/permutation-in-string/description/
class Solution {public boolean checkInclusion(String S1, String S2) {// 看数据范围以及感觉,是双指针,固定窗口大小s1.length// int[] cntS1=new int[128];int[] cntS2=new int[128];char[] s1=S1.toCharArray();char[] s2=S2.toCharArray();if(s2.length<s1.length)return false;for(int i=0;i<s1.length;i++){cntS1[s1[i]]++;cntS2[s2[i]]++;}if(check(cntS1,cntS2))return true;for(int i=s1.length;i<s2.length;i++){// 更新窗口信息cntS2[s2[i]]++; // 右指针右移cntS2[s2[i-s1.length]]--; // 左指针右移if(check(cntS1,cntS2))return true;}return false;}// 判断是否包含对应排列boolean check(int[] cntS1,int[] cntS2){// s2子串出现的字符次数要等于s1每个字符出现的次数for(int i='a';i<='z';i++)if(cntS1[i]!=cntS2[i])return false;return true;}
}