我们考虑字符串处理方面有两种情况,第一种是第一个字符不变,改变其他字符。第二种是第一个字符改变,再去改变其他字符,最后取一个 即可。 代码:
#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;
}