1. 程式人生 > >查詢兩個字串中的相同的字元位置

查詢兩個字串中的相同的字元位置

class Solution {
public:
    vector<int> findAnagrams(string s, string p) {
     vector<int>ve1(256,0);
           vector<int>ve2(256,0);
        vector<int>res;
       
        if(p.size()>s.size())
            return res;
        for(int i=0;i<p.size();i++)
        {
            ++ve1[p[i]];
            ++ve2[s[i]];
        }
        if(ve1==ve2)
            res.push_back(0);
       
        for(int i=p.size();i<s.size();++i)
        {
            ++ve2[s[i]];
            --ve2[s[i-p.size()]];
           
            if(ve1==ve2)
                res.push_back(i-p.size()+1) ;
        }
       
        return res;
    }
};