华为笔试题:词频统计
2022年4月6日,华为笔试题一:词频统计
(回忆)
输入:
第一行两个数,表示topN和M,topN是需要统计的前topN个高频词,M表示有M组标题和正文。
第二行开始,一共M组,每组两行,一行标题一行正文、一行标题一行正文、…。
还有个条件:标题中的频次系数是3,正文中的频次系数是1。意思是标题中出现的次数一次算三次,正文中出现一次就算一次。
输出:
输出统计的出现频次最多的topN个单词,空格隔开。如果出现次数相同,出现在标题中的排在前面,如果还相同,按出现顺序先出现的排在前面。
import java.util.*;//input sample 1:
//3 2
//xinguan feiyan xinzeng bendi quezhen anli
//ju baodao chengdu xinzeng xinguan feiyan bendi quezhen anli yili shenzhen xinzeng bendi quezhen anli liangli yiqing zhengti kongzhi lianghao
//xinguan yimiao linchuang shiyan
//wuzhong xinguan yimiao tongguo sanqi linchaung shiyan xiaoguo lianghao
//
//output:
//xinguan xinzeng bendi// We have imported the necessary tool classes.
// If you need to import additional packages or classes, please import here.
public class Main {public static void main(String[] args) {// please define the JAVA input here. For example: Scanner s = new Scanner(System.in);// please finish the function body here.// please define the JAVA output here. For example: System.out.println(s.nextInt());Scanner s = new Scanner(System.in);while (s.hasNext()) {String topN_M = s.nextLine();int topN = Integer.parseInt(topN_M.split(" ")[0]);int M = Integer.parseInt(topN_M.split(" ")[1]);Map<String, int[]> map = new HashMap<>();int titleOrText;int order = 1;for (int m = 0; m < M; m++) {String title = s.nextLine();String[] titleArr = title.split(" ");String article = s.nextLine();String[] articleArr = article.split(" ");titleOrText = 1;for (String ss : titleArr) {if (map.containsKey(ss)) {int[] v = map.get(ss);int c = v[0] + 3;v[0] = c;map.put(ss, v);} else {int[] v = new int[3];v[0] = 3;v[1] = titleOrText;v[2] = order;order++;map.put(ss, v);}}titleOrText = 2;for (String ss : articleArr) {if (map.containsKey(ss)) {int[] v = map.get(ss);int c = v[0] + 1;v[0] = c;map.put(ss, v);} else {int[] v = new int[3];v[0] = 1;v[1] = titleOrText;v[2] = order;order++;map.put(ss, v);}}}Set<Map.Entry<String, int[]>> entrySet = map.entrySet();List<Map.Entry<String, int[]>> entryList = new ArrayList<>(entrySet);entryList.sort((o1, o2) -> {int num = o2.getValue()[0] - o1.getValue()[0];if (num == 0) {num = o1.getValue()[1] - o2.getValue()[1];}if (num == 0) {num = o1.getValue()[2] - o2.getValue()[2];}return num;});StringBuilder sb = new StringBuilder();for (Map.Entry<String, int[]> entry : entryList) {if (topN > 0) {sb.append(entry.getKey()).append(" ");topN--;} else {break;}}String s1 = sb.toString();System.out.println(s1.substring(0, s1.length() - 1));}}
}
【拙劣解法,欢迎指教】
华为笔试题:词频统计相关推荐
- 华为笔试题---明明的随机数
题目 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着 ...
- 【leetcode】第394题:字符串解码(华为笔试题)
题目:给定一个经过编码的字符串,返回它解码后的字符串. 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次.注意 k 保证为正整数. ...
- 华为笔试题 -- 多个数组按顺序合并(Java代码实现)
华为笔试题 – 多个数组按顺序合并(Java代码实现) 题目描述: 现在有多组整数数组,需要将他们合并成一个新的数组.合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉 ...
- 2019届华为笔试题(软件卷)
华为笔试题共3道编程题.第一题100分,第二题200分,第三题300分,一共600分. 第一题: 输入描述: 1.忽略小数点,例如"A1.2",认为包含整数1和2: 2.如果整数的 ...
- 2014-百度 阿里 华为笔试题
8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的 i .每次从通里面拿出来两个球: ii.如果取出的是两 ...
- 华为机试题:统计一共有多少套五福
最近做了几套华为的机试题,今天有时间,把之前写的几套代码全都贴出来.题目都只记得个大概,将就着看吧,不过代码都是完整的,自认为写的还行. 题目描述 大概意思是:集五福,人数≤10,每个人集完五福后,用 ...
- lisp压盖_华为笔试题--LISP括号匹配 解析及源码实现
在17年校招中3道题目AC却无缘华为面试,大概是华为和东华互不待见吧!分享一道华为笔试原题,共同进步! ************************************************ ...
- 华为笔试题 简答错误记录(字符串处理,好题!!!)
输入描述: 一行或多行字符串.每行包括带路径文件名称,行号,以空格隔开.文件路径为windows格式如:E:\V1R2\product\fpgadrive.c 1325 输出描述: 将所有的记录统计并 ...
- 华为笔试题--麻将和牌问题
题目描述: 清一色是麻将番种之一,指由一种花色的序数牌组成的和牌. 数字1-9,每个数字最多有4张牌 我们不考虑具体花色,我们只看数字组合. 刻子:三张一样的牌:如: 111, 222, 333, . ...
- python - 集合:华为笔试题
华为机测题: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性 他先用计算机生成了N个1-1000之间的随机整数(N<=1000),N是用户输入的,对于 其中重复的数字,只保留一个, ...
最新文章
- SQL2005EXPRESS查询关键字出现次数的代码(比常规方法快5倍)
- python3多线程爬虫_【Python3 爬虫】U23_多线程爬虫之初识多线程
- hihocoder 1127 : 二分图三·二分图最小点覆盖和最大独立集
- 重学前端-js的类型问题
- lumen 支持多文件上传及php 原生多文件上传
- mysql命令查看过程内容_mysql查看存储过程命令
- ajax: jquery get request
- raw input()和input区别
- 十一、Python第十一课——用户输入和另一种循环(While)
- pgpool-II 高可用搭建
- 如何用PPT来实现三维3D效果,附参数设置详解
- 第一行Java代码,java高级面试笔试题
- 神奇的 SQL → 为什么 GROUP BY 之后不能直接引用原表中的列?
- java long类型赋值_Java语言编程第22讲——如何理解“Java是强类型语言”
- c#解析XML到DATASET及dataset转为xml文件函数
- python运行系统_python执行系统命令的方法
- 2799元即可畅享12GB+256GB超大存储,荣耀60 SE新版本正式发布
- 【FFmpeg4.1.4 编码】h265编码
- 彤云缥缈回金格,明月婵娟挂玉钩
- kernel支持4k/16k/64k pagesize