牛客周赛 Round 7 T2题解

游游的01串操作

https://ac.nowcoder.com/acm/contest/63091/B

我们考虑字符串处理方面有两种情况,第一种是第一个字符不变,改变其他字符。第二种是第一个字符改变,再去改变其他字符,最后取一个 min\min 即可。 代码:

#include<bits/stdc++.h>
using namespace std;
signed main(){
	string s;
	cin>>s;
	int ans=0;
	int ans2=0;
	string c=s;
	for(int i=1;i<s.size();i++){
		if(s[i]==s[i-1]){
			if(s[i]=='0'?s[i]='1':s[i]='0');
			ans+=i+1;
		}
	}
	ans2++;
	if(c[0]=='1'?c[0]='0':c[0]='1');
	for(int i=1;i<c.size();i++){
		if(c[i]==c[i-1]){
			if(c[i]=='0'?c[i]='1':c[i]='0')
			ans2+=i+1;
		}
	}
	cout<<min(ans,ans2);
	return 0;
}
全部评论
加油,多写点题解,帮助小白
3 回复 分享
发布于 2023-08-13 20:54 广东
orz orz
1 回复 分享
发布于 2023-08-14 11:57 山东

相关推荐

评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务