以字母出现次数相同为字母异位词。
以双指针所夹的区间作为s中与p比较的子串。(滑块)
vector<int> findAnagrams(string s, string p) {
int sLen = s.size();
int pLen = p.size();
if(sLen < pLen)
return {};
int l=0, r=-1;
vector<int> vecS(26),vecP(26),res;
for(int i=0;i<pLen;++i){
++vecS[s[i]-'a'];
++vecP[p[++r]-'a'];
}
if(vecS==vecP)
res.push_back(0);
while(r<sLen-1){
++vecS[s[++r]-'a'];
--vecS[s[l++]-'a'];
if(vecS==vecP)
res.push_back(l);
}
return res;
}