class Solution {
public:
vector<int> findAnagrams(string s, string p) {
int m = s.size();
int n = p.size();
vector<int> res;
if(n > m){
return res;
}
vector<int> sc(26);
vector<int> pc(26);
for(int i = 0; i < n; ++i){
++pc[p[i] - 'a'];
++sc[s[i] - 'a'];
}
if(sc == pc){
res.push_back(0);
}
for(int i = 1; i < m - n + 1; ++i){
--sc[s[i - 1] - 'a'];
++sc[s[i + n - 1] - 'a'];
if(sc == pc){
res.push_back(i);
}
}
return res;
}
};
LeetCode 438. 找到字符串中所有字母异位词
最新推荐文章于 2024-07-24 22:13:06 发布