求助
查看原帖
求助
474235
LeTu_Jun楼主2022/1/4 18:48
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
char s[N];
int n;
int min_1,min_0;
/*min_1—1 的最后位置*/ 
/*min_0—0 的最后位置*/ 
int main ()
{
	scanf("%d",&n);
	scanf("%s",s);
	/*字符串加速读入*/ 
	for(int i=n,j=1;i>=1;i--,j++){
		/*从后往前数*/ 
        if(s[i]=='1' && min_1==0)
		/*因为是从后往前数的,需要判断这个字符*/ 
		/*是不是第一个遇到的*/ 
        {
        	min_1=n-j+1;
		}
		if(s[i]=='0' && min_0==0)
		/*同上*/ 
		{
			min_0=n-j+1;
		}
		if(min_1 && min_0)
		/*都找到了就跳出*/ 
		{
			break;
		}
    }
    printf("%d",min(min_1,min_0));
    /*求最小*/ 
    return 0;
 } 
2022/1/4 18:48
加载中...