华为OD机试统一考试D卷C卷 - 手机App防沉迷系统
题目描述
智能手机方便了我们生活的同时,也侵占了我们不少的时间。“手机App防沉迷系统”能够让我们每天合理地规划手机App使用时间,在正确的时间做正确的事。
它的大概原理是这样的:
- 在一天24小时内,可以注册每个App的允许使用时段
- 一个时间段只能使用一个App
- App有优先级,数值越高,优先级越高。注册使用时段时,如果高优先级的App时间和低优先级的时段有冲突,则系统会自动注销低优先级的时段,如果App的优先级相同,则后添加的App不能注册。
请编程实现,根据输入数据注册App,并根据输入的时间点,返回时间点使用的App名称,如果该时间点没有注册任何App,请返回字符串“NA”。
输入描述
第一行表示注册的App数量 N(N ≤ 100)
第二部分包括 N 行,每行表示一条App注册数据
最后一行输入一个时间点,程序即返回该时间点使用的App
2
App1 1 09:00 10:00
App2 2 11:00 11:30
09:30
数据说明如下:
- N行注册数据以空格分隔,四项数依次表示:App名称、优先级、起始时间、结束时间
- 优先级1~5,数字越大,优先级越高
- 时间格式 HH:MM,小时和分钟都是两位,不足两位前面补0
- 起始时间需小于结束时间,否则注册不上
- 注册信息中的时间段包含起始时间点,不包含结束时间点
输出描述
输出一个字符串,表示App名称,或NA表示空闲时间
用例2
输入
1 App1 1 09:00 10:00 09:30
输出
App1
说明
App1注册在9点到10点间,9点半可用的应用名是App1
Java
import java.util.ArrayList; import java.util.Scanner; public class Main { // 定义App类,用于存储App的相关信息 static class App { String name; // App名称 int priority; // App优先级 int startTime; // App允许使用的起始时间(以分钟为单位) int endTime; // App允许使用的结束时间(以分钟为单位) // App类的构造函数,用于创建App对象 public App(String name, int priority, int startTime, int endTime) { this.name = name; this.priority = priority; this.startTime = startTime; this.endTime = endTime; } } // 主函数 public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 创建Scanner对象,用于读取标准输入 int n = sc.nextInt(); // 读取App数量
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2024华为OD机试E卷D卷题 文章被收录于专栏
本专栏给大家提供了华为2024最新华为OD(D)卷的题目汇总。华为OD机试刷题记录机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。