查詢兩個字串中的相同的字元位置
阿新 • • 發佈:2019-01-29
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;
}
};
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;
}
};