51nod 1396 还是01串 【思维题】

先记录所有1的个数,然后通过,对每一个0的,判断是否和后面的1相等即可

#include<iostream>
#include<string>
#include<string.h>
using namespace std;
char a[10000010];
int main(){
	gets(a);
	int s=0; //s为1的 个数 
	int sum=0;
	for(int i=0;i<strlen(a);i++)	if(a[i]=='1') s++;
 	if(s==0)  sum=0;
 	
 	int q=0;
 	
 	for(int i=0;i<strlen(a);i++){
 		if(a[i]=='0') q++;
 		
 		if(q==s-(i+1-q))//如果前i个的0的个数 等于后i个1的个数,并记录当前的k的下标
			sum=i+1;
	}
	cout<<sum<<endl;
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章