芝士题解
2023-10-13 19:19:08
发布于:广东
11阅读
0回复
0点赞
感谢无敌的海螺老师的帮助!!!
#include <bits/stdc++.h>
using namespace std;
const long long N=5e5+10;
string str;
long long k,sum=0;
char c1,c2;
long long dp[N];//表示i开头C2的数量
int main()
{
cin>>k;
cin>>str;
cin>>c1>>c2;
int len=str.size();
for(int i=len-1;i>=0;i--)
{
dp[i]=dp[i+1];//以i结尾的数量刚开始是i+1结尾的C2数量
if(str[i]==c2) dp[i]++;
}
for(int i=0;i+k-1<len;i++)
{
if(str[i]==c1) sum+=dp[i+k-1];
}
cout<<sum;
return 0;
}
这里空空如也
有帮助,赞一个