专栏文章
B4218 [常州市赛 2023] ABC 字符串 题解
B4218题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mip919e5
- 此快照首次捕获于
- 2025/12/03 08:08 3 个月前
- 此快照最后确认于
- 2025/12/03 08:08 3 个月前
题意
在一个只含有 的字符串中,最多可以操作几次,将 调换成 。
思路
操作的本质其实就是将 往后移动两位, 为整体向前移动,只需要考虑一种情况,将 看为一个整体 ,当左边有多个 右边有一个 时。
例如 会变成 所以同理若左边有多个 且右边有多个 时就会依次从 变成 再变成 那么这道题就结束了。
代码
CPP#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=2e6+5,mod=998244353;
string s;
ll cnt,ans;
signed main(){
ios::sync_with_stdio(0),cout.tie(0),cin.tie(0);
cin>>s;
for(int i=0;i<s.size();i++){
if(i+1<s.size() && s[i]=='B' && s[i+1]=='C'){
ans+=cnt;
i++;
}else if(s[i]=='A') cnt++;
else cnt=0;
}
cout<<ans;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...