总结方法:题目一是动态规划思想,题目二是滑动窗口思想,但是本质都是动态统计:确定子串某个字符位置,统计前面配对次数,以此累加计算即可
1.蓝桥字符
题目链接:1.蓝桥字符【算法赛】 - 蓝桥云课

cpp
#include<bits/stdc++.h>
#define int long long
using namespace std;
string s;
signed main()
{
cin>>s;
int sum1=0,sum2=0,sum3=0;
for(char ch:s)
{
if(ch=='l')
{
sum1++;
}
else if(ch=='a')
{
sum2+=sum1;
}
else if(ch=='n')
{
sum3+=sum2;
}
}
cout<<sum3<<endl;
return 0;
}
2.子串简写
题目链接:1.子串简写 - 蓝桥云课

cpp
#include<iostream>
using namespace std;
typedef long long ll;
int main()
{
ll k,sum=0,sum1=0;
string s;
char c1,c2;
cin>>k>>s>>c1>>c2;
for(int i=0,j=k-1;j<s.size();i++,j++)
{
if(s[i]==c1) sum++;
if(s[j]==c2) sum1+=sum;
}
cout<<sum1<<endl;
return 0;
}