返回题解分享
讨论 / 题解分享/ 帖子详情

子串简写(编程题) - 题解

#include <bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int k,cnt[N],t;
//cnt用于记录这个点及之后有多少个b
long long ans;
string str;
char a,b;
int main(){
    cin>>k;
    cin>>str>>a>>b;
    int len=str.size();
    for(int i=len-1;i>=0;i--){
        if(str[i]==b){
            t++;
            cnt[i]=t;
        }
        else cnt[i]=t;
    }
    
    for(int i=0;i<=len-k;i++){
        if(str[i]==a){
            ans+=cnt[i+k-1];
        }
    }
    cout<<ans<<endl;
    return 0;
}
0 回复 0 转发 0 喜欢 10 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!