当前位置: 首页 > news >正文

信用网站建设成效张掖交通建设投资有限责任公司网站

信用网站建设成效,张掖交通建设投资有限责任公司网站,seo官网优化怎么做,便利的微网站建设【华为OD-E卷 - 机房布局 100分(python、java、c、js、c)】 题目 小明正在规划一个大型数据中心机房,为了使得机柜上的机器都能正常满负荷工作,需要确保在每个机柜边上至少要有一个电箱。 为了简化题目,假设这个机房…

【华为OD-E卷 - 机房布局 100分(python、java、c++、js、c)】

题目

小明正在规划一个大型数据中心机房,为了使得机柜上的机器都能正常满负荷工作,需要确保在每个机柜边上至少要有一个电箱。
为了简化题目,假设这个机房是一整排,M表示机柜,I表示间隔,请你返回这整排机柜,至少需要多少个电箱。 如果无解请返回 -1 。

输入描述

  • cabinets = “MIIM”

其中 M 表示机柜,I 表示间隔

输出描述

  • 表示至少需要2个电箱

备注

  • 1 ≤ strlen(cabinets) ≤ 10000 其中 cabinets[i] = ‘M’ 或者 ‘I’

用例

用例一:
输入:
MIIM
输出:
2
用例二:
输入:
MIM
输出:
1
用例三:
输入:
M
输出:
-1
用例四:
输入:
MMM
输出:
-1

python解法

  • 解题思路:
  • 输入的字符串 s 代表一个排列,其中字符 ‘M’ 和 ‘I’ 代表物品和箱子。
    目标是通过判断字符 ‘M’ 和 ‘I’ 的相对位置来计算可以形成多少对 “箱子”。
    每对 “箱子” 由一个 ‘M’ 和一个 ‘I’ 组成,可以是 ‘M’ 在前,‘I’ 在后;也可以是 ‘I’ 在前,‘M’ 在后。
    遍历字符串,如果当前字符是 ‘M’,则检查其左右相邻的字符是否是 ‘I’,并确保不会重复计算。
    如果找不到匹配的 ‘I’ 或者有不符合条件的字符排列,则返回 -1。
s = input()def calc_boxes(s):l = len(s)  # 获取字符串长度count = 0  # 初始化箱子计数i = 0  # 初始化遍历索引while i < l:  # 使用while循环遍历字符串if s[i] == 'M':  # 如果当前字符是'M'if i + 1 < l and s[i + 1] == 'I':  # 如果'M'后面是'I'count += 1  # 找到一对箱子,计数加1i += 2  # 跳过这对'M'和'I',继续检查下一个字符elif i - 1 >= 0 and s[i - 1] == 'I':  # 如果'M'前面是'I'count += 1  # 找到一对箱子,计数加1i += 1  # 跳过当前的'M',继续检查下一个字符else:return -1  # 如果'M'没有配对的'I',返回-1else:i += 1  # 如果当前字符不是'M',继续向后遍历return count  # 返回找到的箱子对数print(calc_boxes(s))  # 输出结果

java解法

  • 解题思路
  • 给定一个字符串,其中字符 ‘M’ 表示机器,字符 ‘I’ 表示电箱。目标是计算出能够组成多少个机器与电箱的配对,且每个配对必须由一个 ‘M’ 和一个 ‘I’ 组成。
    配对时,优先选择将 ‘M’ 与其右侧的 ‘I’ 配对,如果右侧没有 ‘I’,则尝试与左侧的 ‘I’ 配对。
    如果无法找到任何有效的配对,则返回 -1。
    遍历字符串时,如果 ‘M’ 已经与电箱配对成功,则跳过这部分字符,继续检查下一个可能的配对
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String input = sc.next();  // 输入字符串System.out.println(getMinBoxes(input));  // 输出最小电箱数}// 主函数用于返回最小电箱数public static int getMinBoxes(String str) {return countValidBoxes(str);  // 调用辅助方法进行电箱数计算}// 计算有效的电箱对数private static int countValidBoxes(String str) {int length = str.length();  // 获取字符串长度int totalBoxes = 0;  // 初始化电箱计数器// 遍历字符串,根据规则判断电箱放置for (int i = 0; i < length; i++) {if (isMachine(str, i)) {  // 判断当前字符是否是机器 'M'// 尝试优先放置右边的电箱if (canPlaceRight(str, i)) {totalBoxes++;  // 成功放置电箱,更新电箱计数i += 2;  // 跳过已处理的部分,移动索引}// 若不能放置右边,尝试放置左边else if (canPlaceLeft(str, i)) {totalBoxes++;  // 成功放置电箱,更新电箱计数}// 两边都无法放置电箱,则返回 -1else {return -1;}}}return totalBoxes;  // 返回总的电箱数量}// 判断当前位置字符是否是机器 'M'private static boolean isMachine(String str, int index) {return str.charAt(index) == 'M';  // 如果字符为 'M' 返回 true}// 判断能否在右边放置电箱private static boolean canPlaceRight(String str, int index) {return index + 1 < str.length() && str.charAt(index + 1) == 'I';  // 判断右边是否是 'I'}// 判断能否在左边放置电箱private static boolean canPlaceLeft(String str, int index) {return index - 1 >= 0 && str.charAt(index - 1) == 'I';  // 判断左边是否是 'I'}
}

C++解法

  • 解题思路
更新中

C解法

  • 解题思路

更新中

JS解法

  • 解题思路

更新中

注意:

如果发现代码有用例覆盖不到的情况,欢迎反馈!会在第一时间修正,更新。
解题不易,如对您有帮助,欢迎点赞/收藏

http://www.yayakq.cn/news/365382/

相关文章:

  • 爱名网做网站教程详情页设计说明
  • 网站建设价位高有低主网站怎么做熊掌号优化
  • php做简易网站公司注册资本
  • wordpress 导出export.php做第三方seo优化网站
  • 勒流网站制作做网站都需要年服务费吗
  • 怀仁建设局网站嘉兴网站优化联系方式
  • 高端建站选哪家石家庄关键词排名提升
  • 撤销网站备案申请书石家庄哪里做网站比较好
  • 做网站的背景照抖音自媒体平台注册入口
  • 嘉峪关市住房和城乡建设局网站seo培训机构哪家好
  • 瑞安网站建设优化推广石景山网站建设服务
  • 协和医院网站建设目标西安网站托管专业公司
  • 陕西省建设厅的网站django校园网站开发
  • 南宁手机网站建设163企业邮箱怎么开通注册
  • 服装公司网站规划建设阿里云网站建设教程视频
  • 通过wordpress小程序发布文章北京网站优化怎么样
  • 沧州做企业网站Wordpress对接阿里云OSS
  • 上海教育网站前置审批网站运营介绍
  • 冠县网站建设wordpress百度搜索
  • 网站 前台后台有没有不花钱建设网站的方法
  • 免费推广网站58网上找装修设计
  • 博客做网站网站建设与管理资料下载
  • 直接IP做访问我服务器的网站网页设计模板html代码 div
  • 做网站维护上海专业的网站建设公司
  • 建立网站的申请邢台网页美工
  • 闲置tp路由自己做网站我的世界做外国壁纸网站
  • 广州市住房和城乡建设局官方网站海南省住房城乡建设厅网站首页
  • 怎样查询网站空间慈溪市建设厅网站
  • 广州网站设计教程推广引流方法有哪些?
  • 阅读分享网站模板找百度做的网站可以过户