70分,求一个hack数据
查看原帖
70分,求一个hack数据
348938
joyskaka楼主2025/1/4 16:27

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;//最后一个最长的全是0的子串的位置 
			}
		}
		else res=0;
	}
	while(i<p){
		swap(s[i],s[p]);
		i++;p--;
	}
	cout<<s;
	
	return 0;
}

2025/1/4 16:27
加载中...