class Solution {
public:
bool judge(vector<int>& A,vector<int>& B){
for(int i=0;i<26;i++) if(A[i] != B[i]) return false;
return true;
}
bool checkInclusion(string s1, string s2) {
int N = s2.length();
int L = s1.length();
if(L > N) return false;
vector<int> A(30),B(30);
for(int i=0;i<L;i++){
A[s1[i]-'a'] ++;
B[s2[i]-'a'] ++;
}
if(judge(A,B)) return true;
for(int i=L;i<N;i++){
B[s2[i]-'a'] ++;
B[s2[i-L]-'a']--;
if(judge(A,B)) return true;
}
return false;
}
};