Find All Anagrams in a String

用一個窗口......hash表的活學活用......

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章