class Solution{//O(N)O(1)
public:
bool checkInclusion(string s1, string s2){
int m=s1.size(),n=s2.size();if(m>n)return false;
int cnt[26]={0}, need=m;for(char c:s1)++cnt[c-'a'];
for(int r=0;r<n;++r){
if(cnt[s2[r]-'a']-->0)--need;
if(r>=m && cnt[s2[r-m]-'a']++>=0)++need;
if(!need)return true;
}return false;
}
};