华为OD机试真题B卷 Java 实现【机房布局】,附详细解题思路

news2024/11/17 6:42:31

一、题目描述

小明正在规划一个大型数据中心机房,为了使得机柜上的机器都能正常满负荷工作,需要确保在每个机柜边上至少要有一个电箱。

为了简化题目,假设这个机房是一整排,M表示机柜,I表示间隔,请你返回这整排机柜,至少需要多少个电箱。 如果无解请返回 -1 。

二、输入描述

cabinets = “MIIM”

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

三、输出描述

2

表示至少需要2个电箱。

四、补充说明

1<= strlen(cabinets) <= 10000,其中 cabinets[i] = ‘M’ 或者 ‘I’。

五、解题思路

  1. 读取输入的机柜排列字符串cabinets;
  2. 初始化电箱数量sum为0;
  3. 遍历机柜排列字符串:
    • 如果当前字符是机柜M,则判断下一个字符是否是间隔I:
      • 如果下一个字符是间隔I,表示该机柜有电箱,将电箱数量加1,同时跳过下一个字符;
      • 如果下一个字符不是间隔I,则判断前一个字符是否是间隔I:
        • 如果前一个字符是间隔I,表示该机柜有电箱,将电箱数量加1;
        • 如果前一个字符不是间隔I,表示该机柜既没有前置间隔也没有后置间隔,无法满足要求,将电箱数量设为-1,并结束循环;
  4. 输出电箱数量sum;

六、Java算法源码

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String line = sc.nextLine();

    int sum = 0;
    for (int i = 0; i < line.length(); i++) {

        char c = line.charAt(i);

        if (c == 'M') {
            if (i + 1 < line.length() && line.charAt(i + 1) == 'I') {
                sum++;
                i += 2;
            } else if (i - 1 >= 0 && line.charAt(i - 1) == 'I') {
                sum++;
            } else {
                sum = -1;
                break;
            }
        }
    }
    System.out.println(sum);
}

七、效果展示

1、输入

3 3
0 1
0 2
1 2

2、输出

4

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【获得完美走位】【2023Q1 100分】

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

北斗RTK差分定位技术原理、优势及应用领域

北斗卫星导航系统是中国自主建设的卫星导航系统&#xff0c;是继美国GPS、俄罗斯GLONASS和欧盟Galileo之后&#xff0c;全球第四个卫星导航系统。北斗系统非常重要&#xff0c;可用于国防、公共安全、民生等多个领域&#xff0c;包括交通运输、环境保护、渔业等。差分定位则是北…

【Springboot系列】springboot扩展点大整理,赶紧收藏起来

系列文章&#xff1a;Spring Boot学习大纲&#xff0c;可以留言自己想了解的技术点 1、aware系列 在Spring Boot中&#xff0c;有一些可以实现的Aware接口&#xff0c;用于在应用程序中获取特定的上下文或对象。这些接口允许您的组件意识到它们所在的环境&#xff0c;并与之进…

和数集团元宇宙场景落地 催生新机遇

现代社会随着科技不断发展&#xff0c;人们对于虚拟现实的需求日益提高。随着互联网进入Web3.0时代&#xff0c;越来越多的人开始进入虚拟世界&#xff0c;探索虚拟现实的无限可能。 在这个充满未知的广阔世界中&#xff0c;和数集团旗下包括【神念无界源起山海】、【神宠岛】…

国内使用chatGPT插件

无需任何繁琐操作&#xff0c;只要你一打开edge浏览器就能使用chatGPT&#xff0c;还要什么自行车&#xff01; 那么如何使用呢&#xff1f;其实操作是非常简单的&#xff01; 步骤 第一步&#xff1a;下载edge浏览器 edge浏览器一般Windows10系统都自带了&#xff0c;没有的…

ChatGPT 提示的艺术 —— 如何编写清晰有效提示指南

ChatGPT 提示的作用 正如我们之前提到的那样&#xff0c;ChatGPT 对话中使用的提示的质量可以显著影响对话的成功。定义清晰的提示可以确保对话保持在正确的轨道上&#xff0c;并涵盖用户感兴趣的主题&#xff0c;从而产生更引人入胜和信息丰富的体验。 那么什么样的 ChatGPT…

计算机网络实验:认识Packet Tracer软件

目录 前言实验目的实验内容及要求相关知识点实验指导实验过程总结 前言 计算机网络是当今信息技术的重要组成部分&#xff0c;它涉及到多种硬件和软件的协同工作&#xff0c;以实现数据的传输和交换。为了更好地理解和掌握计算机网络的基本原理和技术&#xff0c;我们需要进行…

关于分数的二进制原反补码的求解

话不多说&#xff0c;上例子 求-53/64的原反补&#xff1b; 前奏&#xff1a;-53/64可以分解为符号位“-”和数字位53/64&#xff1b; 第一步&#xff1a;在计算机中&#xff0c;符号位用0表示“”用1表示“-” 第二步&#xff1a;求53/64的二进制数&#xff0c;过程如下图…

如何回馈 Elastic 社区

作者&#xff1a;Ully Sampaio 在 Elastic 社区中拥有前排座位最美妙的事情之一就是见证人们互相帮助。 从讨论和 Elastic Community Slack 工作区到 Elastic YouTube 官方频道&#xff0c;无论你走到哪里&#xff0c;你都会看到 Elasticsearch 专家和初学者分享他们的知识。 这…

图解LeetCode——543. 二叉树的直径

一、题目 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 二、示例 2.1> 示例 1&#xff1a; 【输入】roo…

Vision Transformer (ViT)及各种变体

目录 0.Vision Transformer介绍 1.ViT 模型架构 1.1 Linear Projection of Flattened Patches 1.2 Transformer Encoder 1.3 MLP Head 1.4 ViT架构图 1.5 model scaling 2.Hybrid ViT 4.其他Vision Transformer变体 5.Vit代码 6.参考博文 0.Vision Transformer介绍 …

样本不平衡的解决办法

背景 Focal loss是最初由何恺明提出的&#xff0c;最初用于图像领域解决数据不平衡造成的模型性能问题。本文试图从交叉熵损失函数出发&#xff0c;分析数据不平衡问题&#xff0c;focal loss与交叉熵损失函数的对比&#xff0c;给出focal loss有效性的解释。 交叉熵损失函数…

危机先知:TOOM舆情监控助力风险预警

随着社交媒体和互联网的普及&#xff0c;公众的声音在网络上如洪水般涌现。这些声音传递着情绪、态度和观点&#xff0c;对个人、组织甚至整个社会产生着巨大影响。因此&#xff0c;舆情监控成为了一个不可或缺的工具&#xff0c;帮助企业和组织及时了解公众对其品牌、产品或服…

决策树基本理论知识

目录 1、决策树是一种树模型 2、决策树的训练与测试 3、信息增益&#xff08;ID3&#xff09; 3.1、衡量标准-熵 3.2、决策树构造实例 4、决策树算法 ​5、连续值离散化 6、预剪枝 1、决策树是一种树模型&#xff1a; &#xff08;1&#xff09;、从根结点开始一步步走…

【C++】哈希表封装unordered系列

文章目录 前言一、哈希表的封装总结 前言 在看本篇文章前大家尽量拿出上一篇文章的代码跟着一步步实现&#xff0c;否则很容易引出大量模板错误而无法解决。 一、哈希表的封装 首先我们要解决映射的问题&#xff0c;我们目前的代码只能映射整形&#xff0c;那么如何支撑浮点数…

Java使用zxing.jar生成二维码

由于时代科学的进步&#xff0c;二维码已经和我们的生活密不可分&#xff0c;在开发过程中往往会涉及到和二维码相关的开发&#xff0c;今天这篇文章就教会大家如何使用zxing.jar包生成二维码 下面这个就是百度上面自带的一个生成二维码的功能&#xff0c;那他是怎么实现这个功…

计算机组成原理与体系结构概述

目录 一、计算机的发展 二、计算机的硬件系统 三、硬件的工作原理 四、计算机系统的层次结构 五、计算机的性能指标 一、计算机的发展 第一代计算机&#xff1a;电子管计算机 第一台电子计算机&#xff1a;ENIAC&#xff08;1946&#xff09; 设计目的&#xff1a;计算导弹…

平板触控笔哪种好?主动式电容笔推荐

现在市面上的电容笔分为主动式和被动式电容笔&#xff0c;很多小伙伴都分不清主动式和被动式电容笔的区别。今天给大家介绍一下这两款电容笔的区别。给大家分享几款好用的平替电容笔。 一、主动式电容笔和被动式电容笔的区别&#xff1a; 1.主动式电容笔&#xff1a; 主动式电…

数据结构与算法(九)

红黑树复习 图 图&#xff0c;是一种数据结构 集合只有同属于一个集合&#xff1b;线性结构存在一对一的关系&#xff0c;树形结构一对多的关系&#xff0c;图形结构&#xff0c;多对多的关系。 微信中&#xff1a;许多的用户组成了一个多对多的朋友关系网&#xff0c;这个关…

【C语言】变量

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星T…

【机器学习】分类问题和逻辑(Logistic)回归算法详解

在阅读本文前&#xff0c;请确保你已经掌握代价函数、假设函数等常用机器学习术语&#xff0c;最好已经学习线性回归算法&#xff0c;前情提要可参考https://blog.csdn.net/weixin_45434953/article/details/130593910 分类问题是十分广泛的一个问题&#xff0c;其代表问题是&…