您的位置:首页 > 其它

438. Find All Anagrams in a String

2016-11-23 17:36 381 查看
class Solution {
public:
vector<int> findAnagrams(string s, string p) {
int num[26]={0};
for(int i = 0;i < p.length(); i++)
num[p[i]-'a']++;
int f = 0;
for(int i = 0;i < 26;i++)
if(num[i] != 0)
f++;
vector<int> ans;
int length=p.length(),be = 0;

for(int i = 0;i < s.length();i++){
num[s[i]-'a']--;
if(num[s[i]-'a'] == 0)
f--;
if(be + length == i){
if(num[s[be]-'a'] == 0)
f++;
num[s[be]-'a']++;
be++;
}
//cout<<f<<endl;
if(f == 0)
ans.push_back(be);
}
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 438