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;
}

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