找座位,用 C 编码

题目描述

在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位的情况下,最多还能坐下多少名观众。

输入描述

一个数组,用来标识某一排座位中,每个座位是否已经坐人。0 表示该座位没有坐人,1 表示该座位已经坐人。1<=数组长度<=10000

输出描述

整数,在不移动现有观众座位的情况下,最多还能坐下多少名观众。

示例一

输入

10001

输出

1

示例二

输入

0101

输出

0

代码

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

你可能感兴趣的:(刷题,c语言,算法,数据结构)