
我果然还是太菜了(点烟)。
一开始想法是构建map,记录每个字母出现的位置,后来想了好久滑动窗口该怎么移动。
后来看了答案才明白滑动窗口是固定的啊啊啊,每次向右滑就两指针同时右移就行。
好简单……为什么我做了这么久…………
class Solution {
public:
    vector<int> findAnagrams(string s, string p) {
        unordered_map<char,int> mp;
        vector<int> result;
        int low=0;
        int high=0;
        for(int i=0;i<p.size();i++){
            mp[p[i]]++;
            mp[s[high]]--;
            if(mp[p[i]]==0) mp.erase(p[i]);
            if(mp[s[high]]==0) mp.erase(s[high]);
            high++;
        }
        if(mp.empty()) result.push_back(low);
        while(high<s.size()){
            mp[s[high]]--;
            mp[s[low]]++;
            if(mp[s[low]]==0) mp.erase(s[low]);
            if(mp[s[high]]==0) mp.erase(s[high]);
            high++;
            low++;
            if(mp.empty()) result.push_back(low);
        }
        return result;
    }
}; 
                

















