13.计算子串出现次数为单数的字符数

class Solution {
public:
    bool a[100005][26];
    vector<bool> ans;
    vector<bool> canMakePaliQueries(string s, vector<vector<int>>& queries) {
        int n=s.size(),m=queries.size(),i,j,k;
        memset(a[0],0,sizeof(a[0]));
        for(i=0;i<n;i++)
        {
            copy(a[i],a[i]+26,a[i+1]);//先复制一下上一步的状态
            a[i+1][s[i]-'a']^=1;
        }
        ans.clear();
        for(i=0;i<m;i++)
        {   
            for(j=k=0;j<26;j++)k+=a[queries[i][1]+1][j]^a[queries[i][0]][j];//单字符个数
            k>>=1;
            ans.push_back(k<=queries[i][2]);
        }
        return ans;
    }
};

 

posted @ 2020-07-16 20:30  阿破  阅读(90)  评论(0编辑  收藏  举报