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

华为OD机试 - 服务失效判断 - 逻辑分析(Java 2023 B卷 200分)

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
      • 1、输入
      • 2、输出
      • 3、说明
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

某系统中有众多服务,每个服务用字符串(只包含字母和数字,长度<=10)唯一标识,服务间可能有依赖关系,如A依赖B,则当B故障时导致A也故障。依赖具有传递性,如A依赖B,B依赖C,当C故障时导致B故障,也导致A故障。给出所有依赖关系,以及当前已知故障服务,要求输出所有正常服务。

依赖关系:服务1-服务2表示“服务1”依赖“服务2”

不必考虑输入异常,用例保证:依赖关系列表、故障列表非空,且依赖关系数,故障服务数都不会超过3000服务标识格式正常。

二、输入描述

半角逗号分隔的依赖关系列表(换行)。

半角逗号分隔的故障服务列表。

三、输出描述

依赖关系列表中提及的所有服务中可以正常工作的服务列表,用半角逗号分隔,按依赖

关系列表中出现的次序排序。

特别的,没有正常节点输出单独一个半角逗号。

例如:

1、输入

a1-a2,a5-a6,a2-a3
a5,a2

2、输出

a6,a3

3、说明

  • 所有服务+最先出现的序号:{a1=0, a2=1, a3=5, a5=2, a6=3}
  • 故障的服务:[a1, a2, a5]
  • 正常的服务+最先出现的序号:{a3=5, a6=3}
  • 输出a6,a3

四、解题思路

  1. 输入依赖关系列表;
  2. 输入故障服务列表;
  3. 定义dependenceMap,存储依赖关系,key:故障服务,value:被关联的服务;
  4. 定义serviceMap,存储所有服务,key:服务,value:服务出现的次序;
  5. 定义badSet,存储所有故障服务;
  6. 通过while语句,获取所有故障服务;
  7. 遍历badSet,从所有服务中移除故障服务;
  8. 如果没有正常节点,输出单独一个半角逗号;
  9. 按依赖关系列表中出现的次序排序,输出正常的点。

五、Java算法源码

public static void main(String[] args) {Scanner sc = new Scanner(System.in);String[] arr = sc.nextLine().split(",");// 故障服务列表String[] badArr = sc.nextLine().split(",");// key:故障服务,value:被关联的服务Map<String, String> dependenceMap = new HashMap<>();// 所有服务 key:服务,value:服务出现的次序Map<String, Integer> serviceMap = new HashMap<>();int idx = 0;for (String service : arr) {String[] temp = service.split("-");dependenceMap.put(temp[1], temp[0]);serviceMap.putIfAbsent(temp[0], idx++);serviceMap.putIfAbsent(temp[1], idx++);}Set<String> badSet = new HashSet<>();for (int i = 0; i < badArr.length; i++) {String bad = badArr[i];badSet.add(bad);// 获取所有故障服务while (dependenceMap.containsKey(bad)) {bad = dependenceMap.get(bad);badSet.add(bad);}}System.out.println("所有服务+最先出现的序号:" + serviceMap);System.out.println("故障的服务:" + badSet);// 正常的服务 = 所有服务 - 故障的服务badSet.forEach(x -> serviceMap.remove(x));System.out.println("正常的服务+最先出现的序号:" + serviceMap);// 没有正常节点输出单独一个半角逗号if(serviceMap.size()==0){System.out.println(",");return;}// 按依赖关系列表中出现的次序排序输出正常的点StringJoiner stringJoiner = new StringJoiner(",");new ArrayList<>(serviceMap.entrySet()).stream().sorted(Comparator.comparingInt(Map.Entry::getValue)).forEach(x -> stringJoiner.add(x.getKey()));System.out.println(stringJoiner);
}

六、效果展示

1、输入

a10-a1,a5-a6,a2-a3,a6-a1,a4-a3,a3-a5
a5,a2

2、输出

a10,a1,a6

3、说明

  • 所有服务+最先出现的序号:{a1=1, a10=0, a2=4, a3=5, a4=8, a5=2, a6=3}
  • 故障的服务:[a2, a3, a4, a5]
  • 正常的服务+最先出现的序号:{a1=1, a10=0, a6=3}
  • 按序号输出正常的服务a10,a1,a6

在这里插入图片描述


🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

相关文章:

华为OD机试 - 服务失效判断 - 逻辑分析(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&a…...

刚入职因为粗心大意,把事情办砸了,十分后悔

刚入职&#xff0c;就踩大坑&#xff0c;相信有很多朋友有我类似的经历。 5年前&#xff0c;我入职一家在线教育公司&#xff0c;新的公司福利非常好&#xff0c;各种零食随便吃&#xff0c;据说还能正点下班&#xff0c;一切都超出我的期望&#xff0c;“可算让我找着神仙公司…...

Docker学习——③

文章目录 1、Docker Registry&#xff08;镜像仓库&#xff09;1.1 什么是 Docker Registry&#xff1f;1.2 镜像仓库分类1.3 镜像仓库工作机制1.4 常用的镜像仓库 2、镜像仓库命令3、镜像命令[部分]4、容器命令[部分]4.1 docker run4.2 docker ps 5、CentOS 搭建一个 nginx 服…...

EMC Unity存储系统如何查看SSD的使用寿命

为什么要写这个博客&#xff1f; 客户对老的EMC unity的存储系统要扩容&#xff0c;如何确定SSD磁盘是全新的还是拆机二手的&#xff1f;很多时候客户还有一个奇葩的要求&#xff0c;就是要和5年前的磁盘PN一致&#xff0c;甚至要求固件版本一致&#xff0c;最关键的还要求是全…...

python创建一个简单的flask应用

下面用python在本地和服务器上分别创建一个简单的flask应用&#xff1a; 1.在pc本地 1&#xff09;pip flask后创建一个简单的脚本flask_demo.py from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return Hello, World!winR进入命令行&#xff0c;…...

阿里云域名实战

一、准备阿里云服务器&#xff0c;实现网站功能 &#xff08;1&#xff09;百度搜索阿里云 &#xff08;2&#xff09;登录阿里云 可以使用支付宝&#xff0c;淘宝账号登录 &#xff08;3&#xff09;点击控制台 (4)创建实例&#xff0c;购买云服务器 &#xff08;5&#x…...

git关联远程仓库自己分支自用

初始化仓库 cassielDESKTOP-KPKFOEU MINGW64 /d/code/api_test_202310232022 (tong) $ git init Reinitialized existing Git repository in D:/code/api_test_202310232022/.git/关联远程仓库并创建本地分支 cassielDESKTOP-KPKFOEU MINGW64 /d/code/api_test_202310232022 …...

eBPF BCC开源工具简介

目录 官方链接 编译安装 ubuntu版本 安装 examples tools hello_world.py demo 运行报错 网上目前的解决办法 错误分析过程 python版本检测 libbcc库检查 python3 bcc库检查 正常输出 监控进程切换 运行输出 监控CPU直方图 缓存命中率监控&#xff1a;caches…...

Linux上后台运行进程(nohub、screen和tmux )

文章目录 Linux上后台运行进程&#xff08;nohub、screen和tmux &#xff09;nohupscreen虚拟终端安装screen使用 tmux终端复用器[个人推荐]安装tmux使用 Linux上后台运行进程&#xff08;nohub、screen和tmux &#xff09; 命令行的典型使用方式是&#xff0c;打开一个终端窗…...

javaee实验:搭建maven+spring boot开发环境,开发“Hello,Spring Boot”应用

目录 mavenspringboot实验目的实验内容环境的搭建 在开发中&#xff0c;maven和spring都是非常常用、非常重要的管理工具和框架&#xff0c;今天就在这里使用idea进行环境的搭建和创建第一个spring程序 maven 1.1maven是一个跨平台的项目管理工具&#xff08;主要管理jar包&am…...

重新思考边缘负载均衡

本文介绍了Netflix在基于轮询的负载均衡的基础上&#xff0c;集成了包括服务器使用率在内的多因素指标&#xff0c;并对冷启动服务器进行了特殊处理&#xff0c;从而优化了负载均衡逻辑&#xff0c;提升了整体业务性能。原文: Rethinking Netflix’s Edge Load Balancing[1] 我…...

构建一个CAN报文周期任务类

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、can周期任务类构建总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 最近想着有时间实现总线报文收发的动态的配置&#xff0c;…...

深入理解计算机系统CS213 - Lecture 02

Bits, Bytes, and Integer 1.位运算与条件运算 &&#xff0c;|&#xff0c;^&#xff0c;~ 是做位运算。诸位01运算。 &&&#xff0c;||&#xff0c;&#xff01;是判断条件真假&#xff0c;而后返回0或1。 2. 位移 x << y&#xff1a;左移y位&#xff…...

【KVM】KVM介绍及功能概述

前言 大家好&#xff0c;我是秋意零。 今天介绍的内容是KVM的概述&#xff0c;以及它所支持的基本功能。 &#x1f47f; 简介 &#x1f3e0; 个人主页&#xff1a; 秋意零&#x1f525; 账号&#xff1a;全平台同名&#xff0c; 秋意零 账号创作者、 云社区 创建者&#x1f…...

centos7安装MySQL

引言 在安装与卸载的时候&#xff0c;用户全部要切换为root 在使用MySQL的时候&#xff0c;尽量使用root权限&#xff0c;便于使用&#xff08;root权限不会开的可以去百度找一下自己服务器类型的开启方式&#xff09;在本文章我将使用xshell7进行操作&#xff0c;你也可以使用…...

leetcode做题笔记215. 数组中的第K个最大元素

给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,1,5,6,4], k 2…...

Linux Vim撤销和恢复撤销快捷键

使用 Vim 编辑文件内容时&#xff0c;经常会有如下 2 种需求&#xff1a; 对文件内容做了修改之后&#xff0c;却发现整个修改过程是错误或者没有必要的&#xff0c;想将文件恢复到修改之前的样子。 将文件内容恢复之后&#xff0c;经过仔细考虑&#xff0c;又感觉还是刚才修改…...

【BUG】记一次Maven install 报错 Could not find artifact ...:pom:0.0.1-SNAPSHOT

问题描述 创建一个maven多模块项目&#xff0c;执行install报错Could not find artifact …:pom:0.0.1-SNAPSHOT&#xff0c;然后点击clean也是报错。 原因分析&#xff1a; 从错误日志发现提示无法从远程maven仓库下载父模块&#xff0c;一看应该是哪里配置了强制从远程仓库…...

逆向学习记录(4)adb

adb用于PC和手机端通讯。 常用命令如下&#xff1a; 如果不是模拟器&#xff08;模拟器一般都有自己的adb&#xff09;&#xff0c;adb会出现在Andirod的SDK中&#xff0c;路径为&#xff1a;Android/SDK/platform-tools。 最好加入环境变量中。...

Windows Server 2016使用MBR2GPT.EXE教程!

什么是MBR2GPT.exe&#xff1f; MBR2GPT.exe是微软提供的专业工具&#xff0c;可在命令提示符下运行。使用该工具可以将引导磁盘从MBR转换为GPT分区样式&#xff0c;而无需修改或删除所选磁盘上的任何内容。 在Windows Server 2019和Windows 10&#xff08;1703…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix&#xff0c;按照"之"字形的方式打印这个矩阵&#xff0c;例如&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为&#xff1a;1&#xff0c;…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)

注&#xff1a;文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件&#xff1a;STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...