华为OD机试 E卷|手机App防沉迷系统

algorithm-geek / 2025-02-21 / 原文

华为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

详细解题思路、及代码实现可以订阅我的CSDN专栏:最最最新华为OD机试真题