C题求大佬指导,只通过了41%

#include <stdio.h>

#include <stdlib.h>

int main()

{

int n;

scanf("%d",&n);

char *s=(char*)malloc(sizeof(char)*(n+1));

scanf("%s",s);

int zero=0;

int one=0;

int count=0;

int flag=1;

for(int i=0;i<n;i++)//统计0 1

{

if(s[i]=='1')one++;

else zero++;

if(zero-one>0)//101

if(flag==1)//用于说明已经修改过了

{

flag=0;

count=zero;//count为当前前面0的个数,任意修改其一即可

zero--;

one++;

}

else

{

printf("%d",0);//不能取胜

return 0;

}

}

if(flag==0)//修改过

printf("%d",count);

else if(zero==one)printf("%d",zero);

else //zero<one

printf("%d",n);

return 0;

}

全部评论
抱歉,我知道自己哪里错了,最后else if(zero==one)printf("%d",zero);这应该输出n的,想错了
1 回复 分享
发布于 02-10 14:36 安徽

相关推荐

nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务