438. 找到字符串中所有字母异位词

给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。
异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。下面的做法为什么不能通过呢?逻辑上没问题啊。
class Solution {
public:
    vector<int> findAnagrams(string s, string p) {
        if(s.size()<p.size())
            return {};
        vector<int> res;
        vector<int>hash_zeros(26,0);
        for(int i=0;i<s.size()-p.size()+1;i++)
        {
            vector<int> hash_map(26,0);
            for(int j=i;j<i+p.size()&amp;&amp;j<s.size();j++)
            {
                hash_map[s[j]-'a']++;
                hash_map[p[j-i]-'a']--;
            }
            if(hash_map==hash_zeros)
                res.push_back(i);
        }
        return res;
    }
};
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务