AT_abc328_d [ABC328D] Take ABC 题解
题目大意
告诉你一个由 A、B、C 三种字符组成的字符串 ABC
,问最后剩下的字符串是什么。
解题思路
很简单的一道题,我们考虑用栈来维护。对于每个字符,如果是 A 或 B,那么直接进栈,否则的话,考虑当前栈顶的两个元素能否和当前的 C 共同构成一个字符串 ABC
如果能的话,弹出两个栈顶元素,不能的话,就把当前的 C 也加入栈中。
AC 代码
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cstring>
#include<math.h>
#include<time.h>
#define N 200005
char sta[N],s[N];
int tail;
inline void work(){
scanf("%s",s+1);
int len=strlen(s+1);
for(int i=1;i<=len;++i){
if(s[i]=='A') sta[++tail]='A';
else if(s[i]=='B') sta[++tail]='B';
else{
if(sta[tail]=='B'&&sta[tail-1]=='A'){
tail-=2;
}else sta[++tail]='C';
}
}for(int i=1;i<=tail;++i)
putchar(sta[i]);
}signed main(){
work();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下