class Solution {
public:
vector<int> findAnagrams(string s, string p) {
if(s.length() < p.length()) return {};
vector<int> sVec(26, 0);//存放字符串s的滑动窗口内每个字符的出现次数
vector<int> pVec(26, 0);//存放字符串p中每个字符的出现次数
for(int i = 0; i < p.length(); i++){
sVec[s[i] - 'a']++;
pVec[p[i] - 'a']++;
}
int left = 0;
int right = left + p.length() - 1;
vector<int> res;
while(right < s.length()){
if(sVec == pVec) res.push_back(left);
sVec[s[left] - 'a']--;
left++;
right++;
if(right < s.length()){
sVec[s[right] - 'a']++;
}
}
return res;
}
};
05-30