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

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

前缀和



#include<bits/stdc++.h>
using namespace std;
int n,l,c[500005];
long long sum;
char s[500005],a,b;
int main(){
  scanf ("%d\n%s %c %c",&n,s+1,&a,&b);
  l=strlen(s+1);
  for(int i=1;i<=l;i++){
    if (s[i]==a) c[i]++;
    c[i]+=c[i-1];
    if (i>=n&&s[i]==b){
      sum+=c[i-n+1];
    }
  }
  cout<<sum;
  return 0;
}
0 回复 0 转发 0 喜欢 4 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!