class Solution {
public:
std::vector<int> findAnagrams(string s, string p) {
std::vector<int> res;
if (s.size() < p.size()) return res;
std::vector<int> pcnt(26), scnt(26);
for (int i = 0; i < p.size(); i++){
pcnt[p[i] - 'a']++;
scnt[s[i] - 'a']++;
}
if (pcnt == scnt) res.push_back(0);
for (int i = 0; i < s.size() - p.size(); i++){
scnt[s[i] - 'a']--;
scnt[s[i + p.size()] - 'a']++;
if (pcnt == scnt) res.push_back(i + 1);
}
return res;
}
};