70分,思路是找到最后一个最长的全是0的字串的最后一个位置作为r,与前面第一个1的位置作为l,交换这个区间。求一个hack数据
#include <bits/stdc++.h>
using namespace std;
#define LL long long
const int N=1e3+5;
char s[N];
int main(){
cin>>s;
int i=0,j=strlen(s)-1,mx=0,p=0,k,res=0;
while(i<j&&s[i]=='0') i++;
k=i+1;
for(int o=k;o<=j;o++){
if(s[o]=='0'){
res++;
if(res>=mx){
mx=res;
p=o;
}
}
else res=0;
}
while(i<p){
swap(s[i],s[p]);
i++;p--;
}
cout<<s;
return 0;
}