本题使用双指针轻松解决
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
string a;
cin>>a;
char ch1,ch2;
cin>>ch1>>ch2;
int i=0,j=a.length()-1;
int num=0;
long long res=0;
for(i=0;i<=j;i++)
{
if(a[i]==ch1)
num++;
}
while(i>=0&&j>=(n-1))
{
while(a[i]!=ch1&&i>=0)
{
i--; //i指向a
}
while(a[j]!=ch2&&j>=(n-1)) //j指向b
{
j--;
}
if(j-i+1>=n) //满足n
{
res+=num;
j--;
}
else
{
num--;
i--;
}
}
cout<<res;
return 0;
}
用最朴实无华的方法解题
太有实力啦
马老师太有实力Orz