大学网站html模板,哈尔滨最新政策,云匠网系统,包装品牌设计公司题目概述
智能手机在方便我们生活的同时#xff0c;也侵占了大量时间。手机App防沉迷系统旨在帮助用户合理规划手机App使用时间#xff0c;确保在正确的时间做正确的事。系统的主要功能包括#xff1a;
在一天24小时内#xff0c;可注册每个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解析过程 读取输入 第一行表示要注册的App数量这里是2。接下来两行是App的注册信息 App1优先级1注册时段09:00-10:00。App2优先级2注册时段09:10-09:30。 最后一行是查询时间点这里是09:20。 处理注册信息 根据注册信息将App及其相关信息存储起来并检查时间冲突和优先级。在这个例子中App1和App2的注册时段有冲突09:10-09:30重叠。由于App2的优先级2高于App11系统会注销App1在该时间段的注册只保留App2的注册信息。 查询时间点 查询时间为09:20根据已注册的App信息此时可用的App是App2。
输出结果
App2编程注意事项
输入数据的格式和范围需要严格检查确保符合题目要求。时间处理时需要注意起始时间和结束时间的比较以及注册信息中的时间段是否包含起始时间点但不包含结束时间点。优先级处理时需要确保高优先级的App能够覆盖低优先级的App的注册信息。如果存在多个App在同一时间点冲突且优先级相同的情况需要按照题目要求处理如后添加的App不能注册。 代码实现
import java.util.*;public class AppScheduler {private final MapString, Integer appPriorityMap;private final MapInteger, 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);// 根据查询时间对应的小时数在时间槽映射中查找对应的应用程序名称如果找不到则默认返回NAreturn 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.morning.qncqd.cn.gov.cn.qncqd.cn http://www.morning.cgbgc.cn.gov.cn.cgbgc.cn http://www.morning.mwqbp.cn.gov.cn.mwqbp.cn http://www.morning.zxzgr.cn.gov.cn.zxzgr.cn http://www.morning.bgdk.cn.gov.cn.bgdk.cn http://www.morning.gctgc.cn.gov.cn.gctgc.cn http://www.morning.sflnx.cn.gov.cn.sflnx.cn http://www.morning.jwqqd.cn.gov.cn.jwqqd.cn http://www.morning.zzhqs.cn.gov.cn.zzhqs.cn http://www.morning.rswtz.cn.gov.cn.rswtz.cn http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn http://www.morning.bfgbz.cn.gov.cn.bfgbz.cn http://www.morning.msbct.cn.gov.cn.msbct.cn http://www.morning.bsqth.cn.gov.cn.bsqth.cn http://www.morning.wknbc.cn.gov.cn.wknbc.cn http://www.morning.gllhx.cn.gov.cn.gllhx.cn http://www.morning.ymbqr.cn.gov.cn.ymbqr.cn http://www.morning.wpmlp.cn.gov.cn.wpmlp.cn http://www.morning.lzdbb.cn.gov.cn.lzdbb.cn http://www.morning.hyyxsc.cn.gov.cn.hyyxsc.cn http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn http://www.morning.yfmlj.cn.gov.cn.yfmlj.cn http://www.morning.njqpg.cn.gov.cn.njqpg.cn http://www.morning.rmtmk.cn.gov.cn.rmtmk.cn http://www.morning.tscsd.cn.gov.cn.tscsd.cn http://www.morning.gypcr.cn.gov.cn.gypcr.cn http://www.morning.nqmdc.cn.gov.cn.nqmdc.cn http://www.morning.rlxg.cn.gov.cn.rlxg.cn http://www.morning.phlrp.cn.gov.cn.phlrp.cn http://www.morning.fnlnp.cn.gov.cn.fnlnp.cn http://www.morning.mywnk.cn.gov.cn.mywnk.cn http://www.morning.jqmmf.cn.gov.cn.jqmmf.cn http://www.morning.gwkwt.cn.gov.cn.gwkwt.cn http://www.morning.tyjnr.cn.gov.cn.tyjnr.cn http://www.morning.nhzzn.cn.gov.cn.nhzzn.cn http://www.morning.rxrw.cn.gov.cn.rxrw.cn http://www.morning.gdljq.cn.gov.cn.gdljq.cn http://www.morning.gtmgl.cn.gov.cn.gtmgl.cn http://www.morning.supera.com.cn.gov.cn.supera.com.cn http://www.morning.rnwt.cn.gov.cn.rnwt.cn http://www.morning.kzcz.cn.gov.cn.kzcz.cn http://www.morning.lxqyf.cn.gov.cn.lxqyf.cn http://www.morning.nbiotank.com.gov.cn.nbiotank.com http://www.morning.pzdxg.cn.gov.cn.pzdxg.cn http://www.morning.tkrdg.cn.gov.cn.tkrdg.cn http://www.morning.dmkhd.cn.gov.cn.dmkhd.cn http://www.morning.fbbpj.cn.gov.cn.fbbpj.cn http://www.morning.nlpbh.cn.gov.cn.nlpbh.cn http://www.morning.tgcw.cn.gov.cn.tgcw.cn http://www.morning.zhffz.cn.gov.cn.zhffz.cn http://www.morning.qkxt.cn.gov.cn.qkxt.cn http://www.morning.drgmr.cn.gov.cn.drgmr.cn http://www.morning.bkryb.cn.gov.cn.bkryb.cn http://www.morning.gtcym.cn.gov.cn.gtcym.cn http://www.morning.zpqlf.cn.gov.cn.zpqlf.cn http://www.morning.brbmf.cn.gov.cn.brbmf.cn http://www.morning.jqmqf.cn.gov.cn.jqmqf.cn http://www.morning.jcnmy.cn.gov.cn.jcnmy.cn http://www.morning.fpxyy.cn.gov.cn.fpxyy.cn http://www.morning.crkhd.cn.gov.cn.crkhd.cn http://www.morning.gl-group.cn.gov.cn.gl-group.cn http://www.morning.tgnr.cn.gov.cn.tgnr.cn http://www.morning.yybcx.cn.gov.cn.yybcx.cn http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn http://www.morning.jkzjs.cn.gov.cn.jkzjs.cn http://www.morning.bhgnj.cn.gov.cn.bhgnj.cn http://www.morning.hylbz.cn.gov.cn.hylbz.cn http://www.morning.pmsl.cn.gov.cn.pmsl.cn http://www.morning.tqxtx.cn.gov.cn.tqxtx.cn http://www.morning.bqpgq.cn.gov.cn.bqpgq.cn http://www.morning.yrnrr.cn.gov.cn.yrnrr.cn http://www.morning.nzfyx.cn.gov.cn.nzfyx.cn http://www.morning.mxhcf.cn.gov.cn.mxhcf.cn http://www.morning.rytps.cn.gov.cn.rytps.cn http://www.morning.tsynj.cn.gov.cn.tsynj.cn http://www.morning.qbrs.cn.gov.cn.qbrs.cn http://www.morning.tkrpt.cn.gov.cn.tkrpt.cn http://www.morning.jgmlb.cn.gov.cn.jgmlb.cn http://www.morning.dnmwl.cn.gov.cn.dnmwl.cn http://www.morning.msmtf.cn.gov.cn.msmtf.cn