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

来源:互联网 发布:事业单位会计软件 编辑:程序博客网 时间:2024/06/05 17:06

先记录所有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;}

原创粉丝点击