题解:P12341 [蓝桥杯 2025 省 A/Python B 第二场] 消消乐
guoshengyu1231 · · 题解
题意分析
根据题目描述,这是一个关于字符串操作的问题,需要通过消去特定字符对(
思路
注意这题是来最大化剩余字符数量,那我们得想如何贪心使得剩余字符数量最大,也就是消除的字符对最少。
既然要我们使消除的字符对最少,那我们肯定是考虑最不利的情况,由于一定得是
ABAB
在这个字符串中,如果要使字符全部消除的话那就是
所以贪心的依据不就出来了吗?
具体实现
由于我们是要枚举最靠前的
代码
#include<bits/stdc++.h>
using namespace std;
string s;
int main()
{
cin>>s;
int l=0,r=s.size()-1,sum=0;
while(l<r)
{
while(s[l]!='A'&&l<r) l++;
while(s[r]!='B'&&l<r) r--;
if(l>=r) break;//特判
l++;r--;sum+=2;
}
cout<<s.size()-sum;
return 0;
}