Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ext/pb_ds/assoc_container.hpp>
- using namespace __gnu_pbds;
- int checker(string a, string b)
- {
- gp_hash_table<int,int> cntA, cntB;
- for(auto i:a)
- cntA[i]++;
- for(auto i:b)
- cntB[i]++;
- int n = cntA['?'];
- for(auto i:cntB)
- {
- if(cntA[i.first] > i.second)
- return 0;
- if(cntA[i.first] < i.second)
- {
- int miss = i.second - cntA[i.first];
- if(n < miss)
- return 0;
- n-=miss;
- }
- }
- return 1;
- }
- int countAnagram(std::string s, std::string p)
- {
- if(p.size() > s.size())
- return 0;
- int cnt = 0;
- for(int i = 0;i<=s.size() - p.size();i++)
- {
- string tmp = s.substr(i, int(p.size()));
- cnt+= checker(tmp, p);
- }
- return cnt;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement