Description
Submission
class Solution { int pCount[26]; int sCount[26]; inline bool isSame() { for(int k = 0; k < 26; ++k) { if(pCount[k] != sCount[k]) return false; } return true; } public: vector<int> findAnagrams(string s, string p) { int m = s.length(); int n = p.length(); for(char ch: p) { ++pCount[ch-'a']; } vector<int> rets; for(int i = 0, j = 0; i <= m - n; ++i) { while(j - i < n) { ++sCount[s[j++]-'a']; } if(isSame()) { rets.push_back(i); } --sCount[s[i]-'a']; } return rets; } };