找座位,用 C 编码

简介: 找座位,用 C 编码

题目描述

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


输入描述

一个数组,用来标识某一排座位中,每个座位是否已经坐人。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;
}
相关文章
|
8月前
【每日一题Day356】LC2678老人的数目 | 字符串
【每日一题Day356】LC2678老人的数目 | 字符串
53 0
|
3月前
|
Java
Java实现随机生成某个省某个市的身份证号?如何编码?
【10月更文挑战第18天】Java实现随机生成某个省某个市的身份证号?如何编码?
191 5
|
7月前
1044 火星数字 (20 分)
1044 火星数字 (20 分)
|
存储 Java 索引
1760字,让你拿捏 [‘列表‘]
1760字,让你拿捏 [‘列表‘]
|
容器
2037. 使每位学生都有座位的最少移动次数
一个房间里有 n 个座位和 n 名学生,房间用一个数轴表示。给你一个长度为 n 的数组 seats ,其中 seats[i] 是第 i 个座位的位置。同时给你一个长度为 n 的数组 students ,其中 students[j] 是第 j 位学生的位置。
82 0
【每日一题Day57】LC1945字符串转化后的个位数字之和 | 模拟
思路:由于k一定大于0,因此可以边遍历字符串,边求出第一次转化后的数位之和,然后使用for循环遍历继续求出第k次的数位之和
75 0
|
Rust 自然语言处理 算法
【算法】2037. 使每位学生都有座位的最少移动次数(多语言实现)
一个房间里有 n 个座位和 n 名学生,房间用一个数轴表示。给你一个长度为 n 的数组 seats ,其中 seats[i] 是第 i 个座位的位置。同时给你一个长度为 n 的数组 students ,其中 students[j] 是第 j 位学生的位置。 你可以执行以下操作任意次: 增加或者减少第 i 位学生的位置,每次变化量为 1 (也就是将第 i 位学生从位置 x 移动到 x + 1 或者 x - 1) 请你返回使所有学生都有座位坐的 最少移动次数 ,并确保没有两位学生的座位相同。 请注意,初始时有可能有多个座位或者多位学生在 同一 位置。
【算法】2037. 使每位学生都有座位的最少移动次数(多语言实现)
L1-007 念数字 (10 分)
L1-007 念数字 (10 分)
328 0
7-25 念数字 (15 分)
7-25 念数字 (15 分)
172 0
【刷穿 LeetCode】17. 电话号码的字母组合(中等)
【刷穿 LeetCode】17. 电话号码的字母组合(中等)

热门文章

最新文章