class Solution {
private:
bool compare(int frp[],int frs[]){
int n= frp.size();
for(int i=0;i<26;i++){
if(frp[i]!=frs[i]){
return false;
}
}
return true;
}
public:
vector<int> findAnagrams(string s, string p) {
int frp[26],frs[26];
int ns = s.size(),np = p.size();
vector<int>ans;
for(int i=0;i<np;i++){
frp[p[i]-'a']++;
}
for(int i=0;i<ns;i++){
frs[s[i]-'a']++;
if(i>=np){
frs[s[i-np]-'a']--;
}
if(i>=np-1){
if(compare(frp,frs)){
ans.push_back(i-np+1);
}
}
}
return ans;
}
};