2022华为机试4.6第一题舆情热词题解
第一道AC,后来复盘了一下,简化了代码。
题目链接:舆情热词题目链接
思路:本题可以利用LinkedHashMap来保证输入输出顺序,那么在定义比较器时仅考虑频次即可。有个细节:最后输出的结果不能有空格“ ”,否则不通过。可以有两种思路:1.利用优先队列 2.字符串删除空格。
package liuhao.njupt;import java.util.*;public class huawei0406_1 {public static void main (String[] args){Scanner sc = new Scanner(System.in);LinkedHashMap<String, int[]> map = new LinkedHashMap<>();while (sc.hasNextLine()){int N = sc.nextInt();int M = sc.nextInt();sc.nextLine();for (int p = 0; p < M; p ++){String[] title = sc.nextLine().split(" ");String[] paper = sc.nextLine().split(" ");for (int k = 0; k < title.length; k ++){String s = title[k];if (!map.containsKey(s)){map.put(s, new int[]{k, 1, 0}); //int[]存放:下标,标题个数,正文中的个数;}else {map.get(s)[1] += 1;}}for (int i = 0; i < paper.length; i ++){String s1 = paper[i];if (!map.containsKey(s1)){map.put(s1, new int[]{i, 0, 1}); //int[]存放:下标,个数,正文中的个数;}else {map.get(s1)[2] += 1;}}}List<Map.Entry<String, int[]>> list = new ArrayList<>(map.entrySet());list.sort((o1, o2) -> {int[] arr1 = o1.getValue();int[] arr2 = o2.getValue();int v1 = arr1[1]*3 + arr1[2];int v2 = arr2[1]*3 + arr2[2];if (v1 != v2){return v2 - v1;}return 0;});//删除最后的空格StringBuilder sb = new StringBuilder();for (Map.Entry<String, int[]> entry : list){sb.append(entry.getKey()).append(" ");}String[] str = sb.toString().split(" ");StringBuilder sb1 = new StringBuilder();for (int i = 0; i < N - 1; i ++){sb1.append(str[i]).append(" ");}sb1.append(str[N-1]);System.out.print(sb1.toString());}}
}
//使用优先队列
PriorityQueue<Map.Entry<String, Integer[]>> pq = new PriorityQueue<>((o1, o2) -> {Integer[] arr1 = o1.getValue();Integer[] arr2 = o2.getValue();Integer v1 = 3*arr1[1]+arr1[3];//频率Integer v2 = 3*arr2[1]+arr2[3];if (!v1.equals(v2)){return v2 - v1;}return 0;});pq.addAll(map.entrySet());for (int i = 0; i < N-1; i ++){Map.Entry<String, Integer[]> e2 = pq.poll();assert e2 != null;System.out.print(e2.getKey() + " ");}System.out.print(Objects.requireNonNull(pq.poll()).getKey());
运行结果:
2022华为机试4.6第一题舆情热词题解相关推荐
- 华为机试第十五题:HJ15 求int型正整数在内存中存储时1的个数
华为机试第十五题:HJ15 求int型正整数在内存中存储时1的个数 一.网址链接 二.题目描述 ①描述 ②输入描述 ③输出描述 ④示例一 ⑤示例二 三.代码实现 ①Java代码实现 ②C++代码实现 ...
- 2022华为机试真题 C++ 实现【快速人名查找】
目录 题目 思路 考点 Code 题目 给一个字符串,表示用', \'分开的人名.然后给定一个字符串,进行快速人名查找,符合要求的输出. 快速人名查找要求︰人名的每个单词的连续前几位能组成给定字符串, ...
- 2022华为机试真题 C++ 实现【快递运输】
目录 题目 思路 考点 Code 题目 运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递同时不能让货车超载,需要计算最多能装多少个快递. 注:快递的体积不受限制 快递数最多1000个 货 ...
- 2022华为机试真题 C++ 实现 【字符串子序列II】
目录 题目 思路 核心考点 Code 题目 给定字符串 target 和 source,判断 target是否为 source 的子序列.你可以认为target和 source 中仅包含英文小写字母. ...
- 2022华为机试真题 C++ 实现【分苹果】
目录 题目 思路 核心考点 Code 题目 [分苹果] A.B两个人把苹果分为两堆,A希望按照他的计算规则等分苹果,他的计算规则是按照二进制加法计算,并且不计算进位 12+5=9(1100 + 010 ...
- 【华为机试真题 Python实现】2022年4、5月高频机试题
文章目录 2022年4.5月高频机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值 ...
- 【华为机试真题 Python实现】2022年4季度最新机试题
文章目录 2022年4季度最新机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值计 ...
- 【华为机试真题 Python实现】篮球比赛【2022 Q1 Q2 | 200分】
文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...
- 【华为机试真题详解】数大雁【2022 Q2 | 100分】
文章目录 前言 详解试题 1419. 数青蛙 华为机试题. 数大雁 题目解析 数青蛙代码实现 数大雁不考虑叫声不完整的情况 数大雁考虑叫声不完整的情况 前言 <华为机试真题详解>专栏含牛客 ...
最新文章
- Python Module_openpyxl_styles 样式处理
- 【转】Asp.Net中Excel操作权限的问题
- Python maximum recursion depth exceeded while calling a Python object (gevent的SSL无限递归错误)的问题解决
- Java过滤器详细文档,简介,实例,应用
- oracle显示数据中心类异常,Oracle_10g数据库基础教程-参考答案
- RestTemplate远程接口调用
- 如何在div中垂直对齐图像
- 商超小程序服务器配置,超市商超小程序在线开店的教程
- hardmard积 用什么符号表示_[关于数学哲学的科普]为数学学习准备的基础数理逻辑(用自然推理系统展现的命题演算以及一阶谓词演算)...
- Python 的 setup.py 详解
- 办公室专用表格大全,公司管理常用表格公司制度大全
- 机械硬盘显示位置不可用无法访问介质受写入保护
- 2019-12-23《踩坑日记:虚拟机安装ESXI后无法访问/失联》
- 操作系统——操作系统发展历程及基本概念
- hackthebox-admirer (adminer渗透 python-library-hijacking)
- 浅谈Word中文档标题及编号的设置
- Docker容器基础(二) - Docker公司的入场
- ultralytics/yolov3训练预测自己数据集的配置过程
- 运算放大器芯片输出扩流电路三例
- 银行卡校验规则(Luhn算法)
热门文章
- 全球生命科学领域正面临转型,AI+生命科学元年正在开启
- i.MX6q+QNX(学习笔记一)
- 讯闪4.92带图片教程
- vue.js毕业设计,基于vue.js前后端分离电影院售票系统(H5移动项目) 开题报告
- dell 安装显卡驱动,重启进不了系统解决方法
- sys/types.h
- 第1章 threejs项目实战-构建3D立体仓库车间(智慧物流中心)-效果展示
- c语言程序设计培训课件打包,C语言程序设计实例PPT培训课件.ppt
- 怎么控制当前页面不左右滑动,可以上下滑动
- 论文阅读:DuEE:A Large-Scale Dataset for Chinese Event Extraction in Real-World Scenarios(附数据集地址)