count the occurrences ofanagram
//this solution is for when both the string have same type of character
//example: aabaabaa and aaba
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s,ptr;
cout<<"Enter the first string:"<<endl;
cin>>s;
cout<<"enter the string whose anagram you want to find:"<<endl;
cin>>ptr;
int q=s.size();
int k=ptr.size();
map<char,int>mp;
int count=0;
for(int i=0;i<k;i++)
{
if(mp.find(ptr[i])==mp.end())
{
mp.insert(make_pair(ptr[i],1));
count++;
}
else
{
mp[ptr[i]]++;
}
}
count=mp.size();
int ans=0;
int i=0;
int j=0;
while(j<q)
{
mp[s[j]]--;
if(mp[s[j]]==0)
{
count--;
}
if(j-i+1<k)
{
j++;
}
else if(j-i+1==k)
{
if(count==0)
{
ans++;
}
mp[s[i]]++;
if(count==0)
{
count++;
}
i++;
j++;
}
}
cout<<ans<<endl;
return 0;
}