文章

99

粉丝

120

获赞

8

访问

75.1k

头像
找到字符串中所有字母异位词 438
备考笔记
发布于2024年9月6日 10:13
阅读数 670

class Solution {
public:
    vector<int> findAnagrams(string s, string p) {
        int slen = s.size(), plen = p.size();
        if(slen<plen)return vector<int>();
        
        //滑动窗口
        vector<int>ans;
        vector<int>scc(26), pcc(26);
        for(int i = 0; i < plen; i++){
            scc[s[i]-'a']++;
            pcc[p[i]-'a']++;
        }
        if(scc==pcc)ans.push_back(0);
        for(int i = 0; i < slen-plen; i++){
            scc[s[i]-'a']--;
            scc[s[i+plen]-'a']++;
            if(scc==pcc){
                ans.push_back(i+1);
            }
        }
        return ans;
    }
};

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发