贪心。从左到右扫,找到最先出现的 和上个字符相同的 字符(连续的11或00)。从这个字符开始,只要它和上个字符相同,就反转,再往后考察,反转尽量多,直到字符相异时停止。最后统计一下即可。
#include <bits/stdc++.h>
using namespace std;
#define ll long long
char str[100010];
int main(){
int n;
cin>>n;
scanf("%s",str);
bool flag = 0;
for(int i=1;i<n;i++){
if(str[i]==str[i-1]){
if(str[i]=='0')str[i]='1';
else str[i]='0';
flag=1;
}else{
if(flag)break;