华为OD机试真题 Python 实现【打印文件】【2023Q1 100分】,附详细解题思路

news2024/9/23 7:22:22

在这里插入图片描述

目录

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

一、题目描述

有 5 台打印机打印文件,每台打印机有自己的待打印队列。

因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的优先级,其中数字越大优先级越高。

打印机会从自己的待打印队列中选择优先级最高的文件来打印。

如果存在两个优先级一样的文件,则选择最早进入队列的那个文件。

现在请你来模拟这5台打印机的打印过程。

二、输入描述

每个输入包含 1 个测试用例,每个测试用例第 1 行给出发生事件的数量N(0<N<1000)。

接下来有 N 行,分别表示发生的事件。

共有如下两种事件:

  1. IN P NUM,表示有一个拥有优先级 NUM 的文件放到了打印机 P 的待打印队列中。(0<P≤5,0<NUM≤10);
  2. OUT P,表示打印机 P 进行了一次文件打印,同时该文件从待打印队列中取出。(0<P≤5)。

三、输出描述

对于每个测试用例,每次OUT P事件,请在一行中输出文件的编号。

如果此时没有文件可以打印,请输出NULL。

文件的编号定义为:IN P NUM事件发生第 X 次,此处待打印文件的编号为 X。编号从1开始。

四、解题思路

  1. 读取输入的测试用例数量N。
  2. 创建一个HashMap,用于存储每个打印机的待打印队列。键是打印机的编号,值是一个包含文件信息的列表。列表中的每个元素是一个整型数组,包含两个元素:文件的优先级和文件的编号。
  3. 使用一个计数器count,用于记录文件的编号。
  4. 循环N次,处理每个事件:
    • 读取一行输入,将其分割为事件类型和相关参数。
    • 如果事件类型是"IN",表示有一个文件放入了待打印队列。将文件的优先级和编号存储到列表中,并将列表存储到HashMap中对应打印机的键值对中。
    • 如果事件类型是"OUT",表示打印机进行了一次文件打印。首先检查待打印队列是否为空,如果为空则输出"NULL"。否则,获取待打印队列中优先级最高的文件(优先级最大且编号最小)。输出该文件的编号,并从待打印队列中移除该文件。
  5. 完成所有事件处理后,结束程序。

该算法的时间复杂度为O(NlogM),其中N是事件数量,M是待打印队列中文件的平均数量。每次处理OUT事件时,需要对待打印队列中的文件按优先级进行排序,时间复杂度为O(MlogM)。最终的空间复杂度取决于待打印队列中文件的总数量,即O(M)

五、Python算法源码

n = int(input())
file = {x:[] for x in range(6)}
p = {x:[] for x in range(6)}
out = []
s = 0
for i in range(n):
    a = list(input().split())
    if a[0] == 'IN':
        s += 1
        file[int(a[1])].append(int(a[2]))
        p[int(a[1])].append(s)
    else:
        j = int(a[1])
        if file[j]:
            ans = max(file[j])
            b = 0
            for k in range(len(file[j])):
                if file[j][k] == ans:
                    b = k
                    break
            print(p[j][b])
            file[j].remove(file[j][b])
            p[j].remove(p[j][b])
        else:
            print('NULL')

六、效果展示

1、输入

5
IN 1 2
IN 1 3
IN 1 2
IN 1 3
OUT 1

2、输出

2

3、说明

  1. map放置打印任务 key:打印机的编号,value:type集合
  2. 如果strs[0] == IN,存入map
  3. 如果strs[0] == OUT,判断打印机是否存在打印任务
  4. 如果存在,求出打印机的打印任务,取出第一个元素
  5. 如果不存在打印任务,输出NULL

在这里插入图片描述


🏆下一篇:华为OD机试真题 Python 实现【相对开音节】【2022Q4 100分】,附详细解题思路

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

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

结构体和数据结构--结构体指针的定义和初始化

目录 一、指向结构体变量的指针 二、指向结构体数组的指针 一、指向结构体变量的指针 如上一文章的例题&#xff0c;假设已经声明了STUDENT结构体类型&#xff0c;那么定义一个指向该结构体类型的指针变量的方法为&#xff1a; STUDENT *pt&#xff1b;//定义指向STUDENT结构…

【爬虫】百度FengXiangBiao(完全爬虫卡住了,是爬虫+文本提取方式)

学习使用。爬虫有风险。使用需谨慎。切记切记。 参考链接&#xff1a;学习python爬虫—爬虫实践&#xff1a;爬取B站排行榜 都是排行榜反正 网页细节 按F12&#xff0c;打开控制台。前端就是这点好&#xff0c;非常直观。 找到排行的具体位置&#xff0c;如下图&#xff0c;这…

不知道ai自动生成绘画网站有哪些就试试这些ai绘画软件

自然语言处理技术和机器学习的不断发展&#xff0c;为艺术创作和设计领域带来了新的可能性。随着人工智能技术的进步&#xff0c;越来越多的网站和平台开始利用ai技术&#xff0c;为大家提供自动生成绘画的功能。这些ai绘画网站通过深度学习和生成对抗网络等先进技术&#xff0…

排列组合算法

排列组合算法 next_permutation&#xff08;下一个序列&#xff09;prev_permutation(上一个序列) 主要是两个函数 第一个&#xff1a;next_permutation 下一个序列 第二个&#xff1a;prev_permutation 上一个序列 next_permutation&#xff08;下一个序列&#xff09; 如果说…

React项目通过webpack-plugin-istanbul生成覆盖率报告

早期开发前端覆盖率的时候&#xff0c;使用的是Vue项目&#xff0c;对应的插件是babel-plugin-istanbul&#xff0c;后来发现公司产品使用的是React项目&#xff0c;babel-plugin-istanbul插件就不太支持了。在网上搜索了一下&#xff0c;发现一个全新的插件&#xff1a;webpac…

【Android】组件安全之Activity

前言 前文系统的总结了组件会有什么安全问题&#xff0c;本文详细的从不同的组件切入&#xff0c;深入的解析组件的实现方式。组件安全https://blog.csdn.net/xiru9972/article/details/123537641?ops_request_misc&request_id7a89a72fdd464cee90c20b2b88549c11&biz_…

这么菜还敢要20K?我还不如直接招个应届生

公司今年要招人&#xff0c;面倒是面了很多测试&#xff0c;但没有一个合适的。一开始想要的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;当然来了更好&#xff0c;提供的薪资在10-20k,来面试的人有很多&#xff0c;但平均水准真的是让人失望。 看简历时很多都写着3…

两数相加(java)

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …

[github-100天机器学习]day1 data preprocessing

https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day1_Data_preprocessing/README.md#step-6-feature-scaling—特征缩放 数据预处理 数据帧(Data Frame) 二维的表格形式&#xff0c;类似于电子表格或关系型数据库中的表。数据帧通常被用来存储和操作结构化数据…

移动信号灯通信协议-CWAVE-MTFBWY-TSLI 移动式智能路侧系统

1 产品概览 CWAVE-MTFBWY-TSLⅠ型移动式智能路侧系统 &#xff0c;可通过 LTE-V实现与 实现与 车 载设备 及其他路侧设备 进行信息 交互 。该移动式智能路侧系统可根据实际需求 选配 智能交通信号灯 与/或感知检测设备 &#xff0c;其中 可选配 的感知 检测 设备包括 微波 雷达…

随机森林算法介绍及多分类预测的R实现

随机森林&#xff08;Random Forest&#xff09;是一种经典的机器学习算法&#xff0c;是数据科学家中最受欢迎和常用的算法之一&#xff0c;最早由Leo Breiman和Adele Cutler于2001年提出。它是基于集成学习&#xff08;Ensemble Learning&#xff09;的一种方法&#xff0c;通…

数据库选型sql和nosql

一、数据库选型sql和nosql&#xff1a; 1.1关系型数据库sql和非关系型数据库nosql 1.2关系型数据库特点&#xff1a; 数据结构化存储在二维表中 支持事务的原子性A,一致性C,隔离性I持久性D 特性 支持使用SQL语言对存储在其中的数据进行操作 1.3关系型数据库的适用场景&…

pwn(7.3)

Nc 通过nc&#xff0c;我们可以链接到对方的服务器 再用过Linux的命令可以查找到我们想要的信息 Ret2txt 先查壳 没开任何保护&#xff0c;拿IDA看看 很明显的栈溢出&#xff0c;看到/bin/sh地址 解释&#xff0c;通过汇编语言我们知道调用函数使用call命名&#xff0c;c…

HNU-小学期工训-STC-B案例测试作业

对于一些案例&#xff0c;这里列举一些 流水灯 八位数码管动态扫描 八位数码管流水灯(有BSP版本) 八位数码管滚动显示(有BSP版本) 可变亮度的数码管显示(有BSP版本) 扫描频率可改变的电子钟 按键消抖计数(有BSP版本) 三按键测试(有BSP版本) 霍尔磁场检测(有BSP版本) 数…

精通ES+ES大数据查询常见的疑难杂症的解决与实现

目录 什么是BoolQueryBuilder&#xff1f; 简单的复合查询 RestHighLevelClient中的matchQuery与matchPhraseQuery与termQuery的在实际使用中的不同 ES是否能在类型为text的字段的内部使用keyword&#xff0c;如果能这样做的含义是什么&#xff1f; 什么是ES多字段&#xf…

BES 的BLE MTU设置

1 BES BLE MTU 一个默认的MTU大小&#xff0c;通常为23字节&#xff0c;通过协商&#xff0c;可以使用更大的MTU&#xff0c;最高可达512字节&#xff0c; 2 协商方法

leetcode146.手撸 LRU 算法(java)

LRU 缓存 LRU 缓存题目描述LRU 介绍LRU 算法设计代码实现 单调栈算法 LRU 缓存 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/lru-cache 题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实…

HNU-小学期工训-STC-B测试记录表

说明1“分类I”为检测电路板硬件测试案例&#xff0c;“分类ⅡI、Ⅲ、IV”为不同层次综合应用案例。"分类1、Ⅱ、Ⅲ”必做&#xff0c;“分类TV”选做。 说明2:“测试/故障现象记录”栏:记录实际测量效果并与案例说明对比&#xff0c;并记录;有故障时&#xff0c;记录所见…

《AutoSar实战》读写DID之一:CDD准备

文章目录 前言一、1.新建DID1&#xff0c;使用 **CANdelaStudio** 软件打开工程中的CDD文件并创建DID1) 创建DID2) 详细配置DID3&#xff09;配置读写服务权限 二、同步更新工具链配置1 更新文件并检查1&#xff09; 更新CDD文件2&#xff09;检查更新结果 总结 前言 本章节主…

大型语言模型与知识图谱协同研究综述:两大技术优势互补

机器之心报道 编辑&#xff1a;杜伟 多图综述理清当前研究现状&#xff0c;这篇 29 页的论文值得一读。 大型语言模型&#xff08;LLM&#xff09;已经很强了&#xff0c;但还可以更强。通过结合知识图谱&#xff0c;LLM 有望解决缺乏事实知识、幻觉和可解释性等诸多问题&am…