华为OD机试E卷|手机App防沉迷系统
0、关于本专栏 & 刷题交流群
本文收录于专栏【2024华为OD机试真题】,专栏共有上千道OD机试真题,包含详细解答思路、与四种代码实现(Python、Java、C++、JavaScript)。
点击文末链接加入【华为OD机试交流群】,和群友一起刷题备考。刷的越多,考试中遇到原题的概率就越大,永久、实时更新新题目。
1、题目详情
问题描述
智能手机方便了我们生活的同时, 也侵占了我们不少的时间. 手机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表示空闲时间
示例输入1
1
App1 1 09:00 10:00
09:30
示例输出1
App1
示例输入2
2
App1 1 09:00 10:00
App2 2 09:10 09:30
09:20
示例输出2
App2
示例输入3
2
App1 1 09:00 10:00
App2 2 09:10 09:30
09:50
示例输出3
NA