用数组来表示出现过的字符,滑动窗口维持数量。
class Solution {
public boolean checkInclusion(String s1, String s2) {
int s1Len = s1.length();
int s2len = s2.length();
if(s1Len > s2len){
return false;
}
int[] cnt1 = new int[26];
int[] cnt2 = new int[26];
for(int i = 0; i < s1Len; i++ ){
cnt1[s1.charAt(i) - 'a']++;
cnt2[s2.charAt(i) - 'a']++;
}
if(Arrays.equals(cnt1,cnt2)){
return true;
}
for(int j = s1Len; j < s2len; j++){
cnt2[s2.charAt(j) - 'a']++;
cnt2[s2.charAt(j-s1Len) - 'a']--;
if(Arrays.equals(cnt1,cnt2)){
return true;
}
}
return false;
}
}