如何制作一个微信公众号seo挖关键词
文章目录
- 一、题目
- 🎃题目描述
- 🎃输入输出
- 🎃样例1
- 🎃样例2
- 二、思路参考
- 三、代码参考
- 🏆C语言
- 作者:KJ.JK
🍂个人博客首页: KJ.JK
🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用C语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习
一、题目
🎃题目描述
特定大小的停车场,数组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辆车
二、思路参考
读取输入的停车场数组,将其存储在字符数组 cars[] 中。
初始化停车数量 count 为 0。
遍历停车场数组,对每个车位进行以下处理:
如果当前车位为 1,表示有车辆:
如果下一个车位也为 1,则为卡车,将停车数量增加 1,并将当前位置向后移动两个车位。
否则,为货车或小车,将停车数量增加 1,并将当前位置向后移动一个车位。
如果当前车位为 0,表示没有车辆,则继续遍历下一个车位。
输出最少停车数量 count
三、代码参考
🏆C语言
#include <stdio.h>
#include <string.h>int main() {char cars[1000];int count = 0;// 读取输入的停车场数组char input[2000];fgets(input, sizeof(input), stdin);int length = strlen(input);// 解析输入的停车场数组int index = 0;for (int i = 0; i < length; i++) {if (input[i] == '0' || input[i] == '1') {cars[index] = input[i] - '0';index++;}}// 统计最少停车数目int size = index;int i = 0;while (i < size) {if (cars[i] == 1) {if (i + 2 < size && cars[i + 1] == 1 && cars[i + 2] == 1) {count++;i += 3; // 卡车占据3个车位} else if (i + 1 < size && cars[i + 1] == 1) {count++;i += 2; // 货车占据2个车位} else {count++;i++; // 小车占据1个车位}} else {i++;}}// 输出结果printf("%d\n", count);return 0;
}