【每日算法】 洛谷 P12341 【[蓝桥杯 2025 省 A/Python B 第二场] 消消乐】 2025.10.26

P12341 蓝桥杯 2025 省 A/Python B 第二场 消消乐

题目描述

小蓝正在玩一个叫"一维消消乐"的游戏。游戏初始时给出一个长度为 n n n 的字符串 S = S 0 S 1 ... S n − 1 S = S_0S_1\ldots S_{n-1} S=S0S1...Sn−1,字符串只包含字符 A \text{A} A 和 B \text{B} B。小蓝可以对这个字符串进行若干次操作,每次操作可以选择两个下标 i , j ∈ 0 , n − 1 i, j \in 0, n-1 i,j∈0,n−1,如果 i < j i < j i<j 且 S i = A S_i = \text{A} Si=A 且 S j = B S_j = \text{B} Sj=B,小蓝就可以把它们同时消掉。小蓝想知道在经过若干次操作后,直到无法对字符串继续进行操作时,字符串最多剩下多少个字符。

输入格式

输入一行包含一个长度为 n n n 的字符串 S S S。

输出格式

输出一行包含一个整数表示答案。

输入输出样例 #1

输入 #1

复制代码
BABAABBA

输出 #1

复制代码
4

说明/提示

样例说明

先消掉 ( S 1 , S 6 ) (S_1, S_6) (S1,S6),再消掉 ( S 4 , S 5 ) (S_4, S_5) (S4,S5),此时剩下 BBAA \text{BBAA} BBAA,无法继续进行操作。

评测用例规模与约定

  • 对于 10 % 10\% 10% 的评测用例, 1 ≤ n ≤ 20 1 \leq n \leq 20 1≤n≤20;
  • 对于 20 % 20\% 20% 的评测用例, 1 ≤ n ≤ 100 1 \leq n \leq 100 1≤n≤100;
  • 对于 50 % 50\% 50% 的评测用例, 1 ≤ n ≤ 10000 1 \leq n \leq 10000 1≤n≤10000;
  • 对于所有评测用例, 1 ≤ n ≤ 1 0 6 1 \leq n \leq 10^6 1≤n≤106。

写在前面

可能是最后一舞了

思路

很容易看出来是双指针,然后一直模拟即可

代码

C++ 复制代码
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
void solve(){
    string s;
    cin>>s;
    int cnt=0;
    for(int i=0,j=s.size()-1;i<j;){
        if(s[i]=='A'&&s[j]=='B'){
            i++;
            j--;
            cnt++;
        }
        else if(s[i]=='A'){
            while(i<j&&s[j]!='B'){
                j--;
            }
            if(j>i){
                i++;
                j--;
                cnt++;
            }
        }
        else if(s[j]=='B'){
            while(i<j&&s[i]!='A'){
                i++;
            }
            if(j>i){
                i++;
                j--;
                cnt++;
            }
        }
        else{
            i++;
            j--;
        }
    }
    cout<<s.size()-2*cnt;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	solve();
	return 0;
}
相关推荐
计算机编程-吉哥13 分钟前
YOLO26 vs YOLO11 vs YOLOv8:深度学习咖啡果实成熟度分割系统【计算机毕业设计选题推荐】
人工智能·python·深度学习·yolo·django·毕业设计
彧azz24 分钟前
算法设计与分析:贪心与动态规划
数据结构·学习·算法·贪心算法·动态规划
大衛說38 分钟前
11 · 异常处理与日志
python
auto_go1 小时前
Python 实战指南(7)——账本动不动就崩?先把“魔法字符串”和“裸报错”干掉
python
Beyond_System|系统之外1 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
根目录下的猫1 小时前
RK3588适配的轻量级AI模型推荐
人工智能·后端·python·目标检测
wno7042 小时前
Spring Security权限控制
java·python·spring
ShineWinsu3 小时前
对于Coze—AI:SDK的解析
人工智能·python·ai·sdk·项目·coze·字节跳动
右耳朵猫AI3 小时前
Python周刊2026W38 | 标准流编码修复、PEP 845/846 草案、解析器提速 10%、集合字典二次复杂度
python·ai·数据科学
微软技术分享3 小时前
大模型网络结构:模型接口测试用例参考
python