题目描述
在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位的情况下,最多还能坐下多少名观众。
输入描述
一个数组,用来标识某一排座位中,每个座位是否已经坐人。0 表示该座位没有坐人,1 表示该座位已经坐人。1<=数组长度<=10000
输出描述
整数,在不移动现有观众座位的情况下,最多还能坐下多少名观众。
示例一
输入
10001
输出
1
示例二
输入
0101
输出
0
代码
#include<stdio.h> #include<string.h> int main(){ char str[100]; scanf("%s",str); int cnt=0; //第一个0,然后后面一个也是0, 第一个0处可以写1;前边是0 后边也是0;在最后一个0 且前面是0 for(int i=0;str[i]!='\0';++i){ if(str[i]=='0'){ if((i==0 && i+1 < strlen(str) && str[i+1]=='0')|| (str[i-1]=='0' && i+1<strlen(str) && str[i+1]=='0')|| (i==strlen(str)-1 && str[i-1]=='0')){ str[i]='1'; cnt++; } } } printf("%d\n",cnt); return 0; }