运用滑动窗口即可:
class Solution {
public:
vector<int> findAnagrams(string s, string p) {
vector<int> table1(26);
vector<int> table2(26);
vector<int> res;
int log=s.size();
int shot=p.size();
for(int i=0;i<shot;i++)
{
table1[s[i]-'a']++;
table2[p[i]-'a']++;
}
if(table1==table2)
res.push_back(0);
for(int i=0;i<log-shot;i++)
{
table1[s[i]-'a']--;
table1[s[i+shot]-'a']++;
if(table1==table2)
res.push_back(i+1);
}
return res;
}
};