专栏文章

题解:P13670 [GCPC 2023] Eszett

P13670题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miofx9ck
此快照首次捕获于
2025/12/02 18:33
3 个月前
此快照最后确认于
2025/12/02 18:33
3 个月前
查看原文

题意

给你一个字符串,首先需要将字符串转换为小写并输出。
接下来,你要对于转换后字符串中未更改过的 ss 更改为 B,每改完一次就输出,并恢复到原来的小写字符串。

做法

直接模拟即可,对于每次的 ss 如果未更改过,就更改并打上记号,避免重复。

AC code

CPP
#include<bits/stdc++.h>
using namespace std;
string s;
int vis[1000004];
signed main(){
	cin>>s;
	for(int i=0;i<s.size();i++){
		if(s[i]<='Z'&&s[i]>='A') {
			s[i]=s[i]-'A'+'a';
		}
		cout<<s[i];
	}
	cout<<endl; 
	while(1){
		bool flag=0;
		int x;
		for(int i=0;i<s.size();i++){
			if(i<s.size()-1&&s[i]=='s'&&s[i+1]=='s'&&!vis[i]){
				vis[i]=1;
				x=i;
				flag=1;
				i++;
				
			}
		}
		if(flag){
			for(int i=0;i<s.size();i++){
				if(i==x)
					cout<<"B";
					i++;
				}
				else{
					cout<<s[i];
				}
			}
			cout<<"\n";
		}
		else break;
	}
}	

评论

0 条评论,欢迎与作者交流。

正在加载评论...