当前位置: 首页 > news >正文

pdomysql wordpress小学生班级优化大师

pdomysql wordpress,小学生班级优化大师,网站美工培训课程,佛山营销手机网站建设题目概述 智能手机在方便我们生活的同时,也侵占了大量时间。手机App防沉迷系统旨在帮助用户合理规划手机App使用时间,确保在正确的时间做正确的事。系统的主要功能包括: 在一天24小时内,可注册每个App的允许使用时段。一个时段只…

题目概述

智能手机在方便我们生活的同时,也侵占了大量时间。手机App防沉迷系统旨在帮助用户合理规划手机App使用时间,确保在正确的时间做正确的事。系统的主要功能包括:

  • 在一天24小时内,可注册每个App的允许使用时段。
  • 一个时段只能使用一个App,即不能同时注册多个App在同一时间段内使用。
  • App有优先级,数值越高,优先级越高。注册时,如果高优先级的App时间和低优先级的时段有冲突,系统会自动注销低优先级的时段;如果App的优先级相同,则后添加的App不能注册。

编程实现

编程实现时,需要处理输入数据,包括App的数量、每个App的注册信息(名称、优先级、起始时间、结束时间),并根据输入的时间点返回该时间点可用的App名称。如果时间点没有注册任何App,则返回“NA”。


运行示例解析

以下是一个具体的运行示例及其解析:

输入示例
2
App1 1 09:00 10:00
App2 2 09:10 09:30
09:20
解析过程
  1. 读取输入

    • 第一行表示要注册的App数量,这里是2。
    • 接下来两行是App的注册信息:
      • App1,优先级1,注册时段09:00-10:00。
      • App2,优先级2,注册时段09:10-09:30。
    • 最后一行是查询时间点,这里是09:20。
  2. 处理注册信息

    • 根据注册信息,将App及其相关信息存储起来,并检查时间冲突和优先级。
    • 在这个例子中,App1和App2的注册时段有冲突(09:10-09:30重叠)。由于App2的优先级(2)高于App1(1),系统会注销App1在该时间段的注册,只保留App2的注册信息。
  3. 查询时间点

    • 查询时间为09:20,根据已注册的App信息,此时可用的App是App2。
输出结果
App2

编程注意事项

  • 输入数据的格式和范围需要严格检查,确保符合题目要求。
  • 时间处理时,需要注意起始时间和结束时间的比较,以及注册信息中的时间段是否包含起始时间点但不包含结束时间点。
  • 优先级处理时,需要确保高优先级的App能够覆盖低优先级的App的注册信息。
  • 如果存在多个App在同一时间点冲突且优先级相同的情况,需要按照题目要求处理(如后添加的App不能注册)。

代码实现

import java.util.*;public class AppScheduler {private final Map<String, Integer> appPriorityMap;private final Map<Integer, String> timeSlotMap;public AppScheduler() {appPriorityMap = new HashMap<>();timeSlotMap = new TreeMap<>();}/*** 注册应用程序的优先级和运行时间* * @param appName 应用程序的名称* @param priority 应用程序的优先级,数值越小优先级越高* @param startTime 应用程序开始运行的时间(格式为"HH:mm")* @param endTime 应用程序结束运行的时间(格式为"HH:mm")*/public void registerApp(String appName, int priority, String startTime, String endTime) {// 将开始时间和结束时间转换为小时数int startHour = parseTime(startTime);int endHour = parseTime(endTime);// 如果应用程序还不在优先级映射中,直接添加if (!appPriorityMap.containsKey(appName)) {appPriorityMap.put(appName, priority);} else {// 如果应用程序已经在优先级映射中,只有当新优先级更高时才更新int currentPriority = appPriorityMap.get(appName);if (priority < currentPriority) {return;}appPriorityMap.put(appName, priority);}// 遍历应用程序的运行时间,尝试在时间槽映射中注册for (int i = startHour; i < endHour; i++) {// 如果时间槽已经被占用,只有当新优先级更高时才替换if (timeSlotMap.containsKey(i)) {String existingAppName = timeSlotMap.get(i);int existingPriority = appPriorityMap.get(existingAppName);if (priority > existingPriority) {timeSlotMap.put(i, appName);}} else {// 如果时间槽未被占用,直接注册timeSlotMap.put(i, appName);}}}/*** 根据查询时间获取应用程序名称* 此方法用于根据给定的查询时间确定并返回对应的应用程序名称如果在给定的时间段内找不到确切的应用程序,则返回"NA"* * @param queryTime 查询时间,将被解析以确定对应的时间段* @return 在指定时间段内运行的应用程序的名称,如果找不到则返回"NA"*/public String getAppAtTime(String queryTime) {// 解析查询时间,返回对应的小时数int queryHour = parseTime(queryTime);// 根据查询时间对应的小时数,在时间槽映射中查找对应的应用程序名称,如果找不到,则默认返回"NA"return timeSlotMap.getOrDefault(queryHour, "NA");}/*** 解析时间字符串为分钟数* * @param time 时间字符串,格式为"hh:mm",其中hh为小时数,mm为分钟数* @return 从午夜开始到指定时间的总分钟数*/private int parseTime(String time) {// 将时间字符串按":"分割,得到小时和分钟部分String[] parts = time.split(":");// 计算总分钟数,小时数乘以60加上分钟数return Integer.parseInt(parts[0]) * 60 + Integer.parseInt(parts[1]);}/*** 主函数,用于处理应用程序调度器的输入和输出* @param args 命令行参数*/public static void main(String[] args) {// 创建Scanner对象,读取系统输入Scanner scanner = new Scanner(System.in);// 读取并存储输入的程序数量int numApps = scanner.nextInt();// 消费掉输入中的换行符,准备读取下一行数据scanner.nextLine();// 创建应用程序调度器实例AppScheduler scheduler = new AppScheduler();// 循环读取每个应用程序的注册信息,并注册到调度器中for (int i = 0; i < numApps; i++) {// 读取应用程序名称、优先级、开始时间和结束时间String appName = scanner.next();int priority = scanner.nextInt();String startTime = scanner.next();String endTime = scanner.next();// 在调度器中注册应用程序scheduler.registerApp(appName, priority, startTime, endTime);}// 读取查询的时间点String queryTime = scanner.next();// 输出在查询时间点正在运行的应用程序信息System.out.println(scheduler.getAppAtTime(queryTime));}}

解析步骤

1、定义数据结构:

  • appPriorityMap:存储 App 名称和优先级。
  • timeSlotMap:存储时间段和对应的 App 名称。

2、处理输入数据:

  • 读取输入并解析。

3、注册 App:

  • 根据优先级和时间冲突处理注册信息。

4、查询 App:

  • 根据时间点查询可用的 App 名称。
示例运行
输入示例
2  
App1 1 09:00 10:00  
App2 2 09:10 09:30  
09:20
输出结果
App2
http://www.hrbkazy.com/news/9421.html

相关文章:

  • wordpress做导航网站网络营销概念
  • 南京 郑州网站建设公司 网络服务网站制作流程是什么
  • 上海大型网站开发公司网站友情链接出售
  • 中国企业网站建设现状腾讯广告平台
  • 网站建设书本信息seo优化入门教程
  • wordpress 商业版权seo公司是什么
  • 台州哪家做企业网站比较好精准信息300099
  • 增城百度做网站多少钱如何做电商
  • 潍坊设计网站在线培训系统平台
  • 长沙网站seo收费标准竞价软件哪个好
  • 事业单位网站登录模板万网域名管理入口
  • 邹城做网站seo推广人员
  • pjblog wordpressseo广告
  • 做网站1000以下哪家好公司网站建设方案
  • 江西个人网站备案长沙本地推广联系电话
  • php wordpress 配置seo搜索排名
  • 网站建设价格标准报价seo外包公司专家
  • 做网站代码用什么软件微商引流推广
  • 茂名模板建站定制网站竞价推广怎么样
  • 南京h5制作公司360优化大师软件
  • 营销型网站开发推广宁波seo推荐推广渠道
  • 动态网站开发考试品牌运营推广方案
  • 出入库软件永久免费襄阳seo推广
  • 右安门网站建设广告推广宣传
  • 阿里云 建网站攻略百度图片识别在线识图
  • 品牌策划公司怎么样宁波关键词优化排名工具
  • 150m网站空间流量大吗重庆seo整站优化效果
  • b2b网站排名前十广告优化师的工作内容
  • 杭州网站维护慧生活798app下载
  • 网站做轮播图的意义b2b电商平台