华为OD机试统一考试D卷C卷 - 手机App防沉迷系统

题目描述

智能手机方便了我们生活的同时,也侵占了我们不少的时间。“手机App防沉迷系统”能够让我们每天合理地规划手机App使用时间,在正确的时间做正确的事。

它的大概原理是这样的:

  1. 在一天24小时内,可以注册每个App的允许使用时段
  2. 一个时间段只能使用一个App
  3. 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

数据说明如下:

  1. N行注册数据以空格分隔,四项数依次表示:App名称、优先级、起始时间、结束时间
  2. 优先级1~5,数字越大,优先级越高
  3. 时间格式 HH:MM,小时和分钟都是两位,不足两位前面补0
  4. 起始时间需小于结束时间,否则注册不上
  5. 注册信息中的时间段包含起始时间点,不包含结束时间点

输出描述

输出一个字符串,表示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%内容,订阅专栏后可继续查看/也可单篇购买

华为OD机试刷题 文章被收录于专栏

华为OD机试刷题记录机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务