题目描述
特定大小的停车场,数组cars[]表示停车场车位上停车情况,1表示有车,0表示没车。
车辆大小不一,小车占一个车位(长度为1),货车占两个车位(长度为2),卡车占三个车位(长度为3)。
统计停车场最少可以停放多少辆车,返回具体的车辆数目。
输入
整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000
输出
整型数字字符串,表示最少停车数目
示例1
输入:1,0,1
输出:2
说明:1个小车占第1个车位,第二个车位空,1个小车占第3个车位,最少有两辆车
示例2
输入:1,1,0,0,1,1,1,0,1
输出:3
说明:1个货车占第1、2个车位,第3、4个车位空,1个卡车占第5、6、7个车位,
第8个车位空,1个小车占第9个车位,最少3辆车
分析
简单的一道字符串逻辑处理问题,挨个遍历计算即可
参考代码
示例代码,仅供代码,欢迎大家一起讨论
#include <stdio.h>
#include <string.h>
int main(void)
{
char cars[2000] = {0};
int cnt = 0;
int idx = 0;
char *ch = NULL;
scanf("%s", cars);
ch = strtok(cars, ",");
while (ch != NULL) {
if (0 == *ch - '0') {
idx = 0;
} else {
switch (idx) {
case 0:
cnt++;
idx++;
break;
case 1:
idx++;
break;
case 2:
idx = 0;
break;
}
}
ch = strtok(NULL, ",");
}
printf("%d\n", cnt);
return 0;
}