给定一个字符串小号和非空字符串p,
字符串只包含小写英文字母,字符串s和p的长度不会大于20,100。
输出的顺序并不重要。
采用滑动窗口的方法实现。
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;
}
};