class Solution7 {
/*
567. 字符串的排列
给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。
换句话说,s1 的排列之一是 s2 的 子串 。
*/
public boolean checkInclusion(String s1, String s2) {
int zLen = s1.length();
int fLen = s2.length();
int[] zArray = new int[26];
int[] fArray = new int[26];
if(zLen>fLen){
return false;
}
for(int i=0;i<zLen;i++){
++zArray[s1.charAt(i)-'a'];
++fArray[s2.charAt(i)-'a'];
}
if(Arrays.equals(zArray,fArray)){
return true;
}
for(int i=0;i<fLen-zLen;i++){
--fArray[s2.charAt(i)-'a'];
++fArray[s2.charAt(i+zLen)-'a'];
if(Arrays.equals(zArray,fArray)){
return true;
}
}
return false;
}
}