举办一场8小时的聚会,时间段从12:00到20:00点,让来访的客人事先填好到达的时间和离开的时间,为了掌握聚会期间的座位数目,需要先估计不同时间的最大客人数量。
1.到达和离开的时间,以整点计算,输入为整数,比如“12,18”表示客人到达的时间为12点后13点前,离开的时间是17点后18点前。
2.按小时区间统计客人的数量,需要统计[12,13),[13,14)….[19,20)共有8个时间段的最大客人数量。
3.假设邀请的客人最多100个。
假设输入:

12,15
16,17
12,20
-1,-1

程序要求的输出结果为:

[12,13):2
[13,14):2
[14,15):2
[15,16):1
[16,17):2
[17,18):1
[18,19):1
[19,20):1

Java程序

第一种方法:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Hashtable;
import java.util.List;
public class Test {public static  List<String> list = new ArrayList<String>();public static void main(String[] args) {String[] str = {"12,15","16,17" ,"12,20"};for (int i = 0; i < str.length; i++) {reset(str[i]);}Hashtable<String, Integer>  wordCount = wordcount ();List<String> newlist = new ArrayList<String>();for (String key : wordcount ().keySet()) {newlist.add("[" + key + ")" + ":" + wordCount.get(key));}//重排Collections.sort(newlist, new Comparator() {  public int compare(Object o1, Object o2) {  String str1 = (String) o1;  String str2 = (String) o2;  if (str1.compareToIgnoreCase(str2)<0){    return -1;    }    return 1;    }  });//输出结果for (int i = 0; i < newlist.size(); i++) {System.out.println(newlist.get(i));}}//字符串组合成制定格式,类似于16,17static void reset (String str) {String[] aa = str.split(",");int inter = Integer.parseInt(aa[1]) - Integer.parseInt(aa[0]);for (int i = 0; i < inter; i++) {int newString = Integer.parseInt(aa[0]) + i;list.add( newString + "," +(newString + 1) );}}  //统计次数static Hashtable<String, Integer> wordcount () {Hashtable<String, Integer>  wordCount = new Hashtable<String, Integer>();for (int i = 0; i < list.size(); i++) {String str = list.get(i);if (!wordCount.containsKey(str)) {wordCount.put(str, Integer.valueOf(1));} else {wordCount.put(str, Integer.valueOf(wordCount.get(str).intValue() + 1));}}return wordCount;}
}

对于一个没学过数据结构与算法的人,暂且用这种方法处理。处理逻辑是:首先将指定字符,如”12,15”处理成要求的字符串,如12,13;13,14;14,15。其次,每个制定字符串处理完成之后,使用map集合统计每个字符串(如12,13)出现的总次数。最后,由于map的key是乱序的,所以使用Collections.sort进行重排一下,最终得到输出结果。
参考:https://blog.csdn.net/qy20115549/article/details/81711910

第二种方法:

import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.stream.Collectors;public class Demo {public static void main(String[] args) throws IOException {Map<String, Integer> result = new HashMap<>();Map<String,Integer> linkedMap = new LinkedHashMap<String,Integer>();Scanner in = new Scanner(System.in);String temp;while(in.hasNext()){temp = in.nextLine();String[] split = temp.split(",");int a = Integer.valueOf(split[0]);int b = Integer.valueOf(split[1]);if (a > b || a < 12 || b > 20) {break;}for (int i = a; i < b; i++) {String key = "[" + i + "," + (i + 1) + ")" + ":";if (result.containsKey(key))result.put(key, result.get(key) + 1);elseresult.put(key, 1);}}linkedMap = result.entrySet().stream().sorted(Map.Entry.<String, Integer>comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (o1, o2) -> o1, LinkedHashMap::new));linkedMap.entrySet().forEach(e -> System.out.println(e.getKey() + e.getValue()));}
}

华为机试题202205相关推荐

  1. 华为电脑c语言总是错误,关于华为机试题求代码!解决方法

    关于华为机试题求代码!!! n个字符串,1 如n=3 1.what is local bus? 2.this is local bus. 3.local bus is name sdhfj. 那么最长 ...

  2. 牛客网华为机试题(JavaScript)

    最近在牛客网刷华为机试题,遇到了很多坑,记录: 每一道题目都经过自己实践验证 华为机试题 牛客网在javascript V8引擎下处理输入输出如下: 利用了readline()接收输入的每一行,多行处 ...

  3. 【牛客网】华为机试题(00、C++版本)

    华为机试题,本来以为对一些基础的程序还是有点信心的:不过不练不知道,一练吓一跳.平时虽然也都码程序,但是一到机试题就各种乱七八的不适应.还是要加强一下练习. 1.字符串最后一个单词的长度 题目描述:计 ...

  4. 【牛客网-华为机试题目录】持续更新中

    文章目录 博主精品专栏导航 华为机试题:HJ80 整型数组合并(python) 华为机试题:HJ76 尼科彻斯定理(python) 华为机试题:HJ73 计算日期到天数转换(python) 华为机试题 ...

  5. 华为机试题库+题解【C语言版】

    文章目录 前言 1.字符串最后一个单词的长度[***] 描述 输入描述 输出描述 示例 解题代码 2.计算某字符出现次数[****] 描述 输入描述 输出描述 示例 解题代码 3. 明明的随机数[** ...

  6. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

  7. 【华为机试题分析-C/C++】知识点分类总结

    专栏地址:https://blog.csdn.net/super828/category_10825347.html 字符串 [华为机试题分析] 1 字符串最后一个单词的长度 [华为机试题分析] 2 ...

  8. 【华为机试题分析】 4 字符串分割

    我的首发平台是公众号[CodeAllen],学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处 [华为机试题分析] 4 字符串分割 #include <stdio.h> ...

  9. 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典

    文章目录 2023 年用 Python 语言解华为 OD 机试题,一篇博客找全. 华为 OD 机试题清单(机试题库还在逐日更新) 2023 年用 Python 语言解华为 OD 机试题,一篇博客找全. ...

  10. 华为机试题-20190417

    华为某次Java机试题 介绍 1 2 3 介绍 本次机试题,发生时间:2019年04月17日,19:00. 上一次试题,发生时间:2019年04月03日,19:00. 本次机试3题,均AC. 1 题目 ...

最新文章

  1. c语言循环并行处理,C语言设计并行处理
  2. Impala table/column统计分析
  3. 剑指Offer-二叉树的镜像
  4. ELK学习5_ELK文档资料:《ELK stack 权威指南/饶琛琳》推荐
  5. 类装载器ClassLoader
  6. Linux网络编程 | 零拷贝 :sendfile、mmap、splice、tee
  7. 在XX公司工作第二天,维护已有代码
  8. leetcode84. 柱状图中最大的矩形
  9. C++服务器设计(七):聊天系统服务端实现
  10. 在服务器上安装anaconda遇到的问题总结
  11. 伺服电控领域的产业情况与各主流制造商简介
  12. html js 实现图片的简单分页功能
  13. HDU 5977 Garden of Eden (树形dp+快速沃尔什变换FWT)
  14. 用计算机税额怎么计算,企业所得税计算器(企业税收怎么算计算器)
  15. 【修真院“纯洁”系列之十九】驱逐令
  16. SQL语句编写经典50题
  17. 干货:怎么样才能提升版式平面设计的大方美观?
  18. 食管癌术后患者要怎么进食才科学?
  19. 第二个c程序,日语208音练习
  20. 把Vue项目打包为桌面应用(nwjs)

热门文章

  1. 解决mysql导出scv文件乱码、蹿行的问题
  2. 地图制图基础(二):地图内容
  3. AlphaGo Zero算法讲解
  4. My God,CImage裁剪图片变成黑色了
  5. 计算机三级 信息安全技术题库——选择题1
  6. 星外系统更换短信接口
  7. 计算机网络技术毕业生实习报告_计算机网络专业毕业实习报告
  8. 地图上制作线路的动画_航线地图上的动画飞行效果怎么实现?只要五步轻松上手...
  9. FastStone Capture 9.3 汉化绿色便携版 - 极品屏幕截图工具
  10. android电源管理白名单,刷BIOS工具分享(白名单,高级菜单,电源管理