阿里笔试

原来计划的是昨天下午7:00到8:00进行的,结果刚看完乔司南敏捷的房子,回去之后和鹏伟 一起去吃火锅,所以只好把时间推迟到8:30,结构再次推迟到今天早晨9:00到10:00.
题目是这样的:
给出一个英文文章,统计出其中的单词数目,并且按照次数进行排序。忽略大小写
解答如下:

主题思想是

  • 分词
  • 统计
  • 把Map转换成List
  • 对List进行排序
  • 输出
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Main {public static void main(String[] args) {String article = "abc is abc , a is not b , B is B .";printStaticsOrderly(article, 2);}/*** 有序打印文章中次数大于N的单词** @param article 待统计的文章内容* @param N 大于统计数目的参数*/public static void printStaticsOrderly(String article, int N) {List<WordCount> wordCounts = getWordCounts(statistic(article));wordCounts.sort((o1, o2) -> o2.getCount() - o1.getCount());wordCounts.stream().filter(wordCount -> wordCount.getCount() >= N).forEachOrdered(System.out::println);}/*** 根据文章内容统计各个单词出现的次数,忽略大小写** @param article 待统计的文章内容* @return 返回一个Map,其中键为单词,值为统计数目*/public static Map<String, Integer>  statistic(String article) {Map<String, Integer> map = new HashMap<>();String lowerCaseArticle = article.toLowerCase();Matcher matcher = Pattern.compile("([a-zA-Z]+)").matcher(lowerCaseArticle);String key;while (matcher.find()) {key = matcher.group();if (map.containsKey(key)) {map.put(key, map.get(key) + 1);} else {map.put(key, 1);}}return map;}/*** @param statistic 把统计Map制作成List方便排序* @return*/private static List<WordCount> getWordCounts(Map<String, Integer> statistic) {List<WordCount> wordCounts = new ArrayList<>();statistic.forEach((key, value) -> wordCounts.add(new WordCount(key, value)));return wordCounts;}}class WordCount {private String word;private Integer count;public String getWord() {return word;}public void setWord(String word) {this.word = word;}public Integer getCount() {return count;}public void setCount(Integer count) {this.count = count;}public WordCount(String word, Integer count) {this.word = word;this.count = count;}@Overridepublic String toString() {return word + " : " + count;}
}

时间安排

这次大意了,以为时间比较足,结果完成第一道题,进行编程->调试->格式化,结果一个小时过去了,太尴尬了。只好通过钉钉把答案发给人家。收获了如下的教训

笔试是有时间限制的,1个小时或者45分钟。
不一定要真正的把题目完全编程成功,思路即可。
编程时,还是要先简单的看一下。保存一下题目很重要。

阿里笔试之Java分词统计相关推荐

  1. NLPChina_ansj_seg JAVA 实现热词及分词统计

    前言: 笔者最近遇到一个需求:将文章输入后输出文章中的高频词,这是个简短的需求,但细分下便会出现许多细节重点.笔者细化需求后确定了这几个步骤:1. 文章分词(包括中英文混词)--> 2. 分词统 ...

  2. 博主在阿里笔试中拿了0分,竟是因为分不清楚 Java 输入类 nextLine 与 next 两个方法的区别

    前言 以前做算法题,都是实现一个方法,需要的参数会在方法参数中直接给出,而且需要的返回值直接在方法中 return 就好了.但是,这次阿里笔试,让博主遭遇百万点暴击,需要的参数居然要到输入流中读取,而 ...

  3. 使用Python+jieba和java+庖丁分词在Spark集群上进行中文分词统计

    写在前边的话: 本篇博客也是在做豆瓣电影数据的分析过程中,需要对影评信息和剧情摘要信息进行分析而写的一篇博客 以前学习hadoop时,感觉做中文分词也没那么麻烦,但是到了Spark,却碰到了诸多困难, ...

  4. ali arthas 火焰图_带你上手阿里开源的 Java 诊断利器:Arthas

    本文适合有 Java 基础知识的人群. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>[1]系列,今天给大家带来一款阿里开源的 Java 诊断利器 ...

  5. java为什么打不开jar_带你上手阿里开源的 Java 诊断利器:Arthas

    本文适合有 Java 基础知识的人群. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>[1]系列,今天给大家带来一款阿里开源的 Java 诊断利器 ...

  6. idea 项目jar反编译java_带你上手阿里开源的 Java 诊断利器:Arthas

    本文适合有 Java 基础知识的人群. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款阿里开源的 Java 诊断利器 Art ...

  7. 23届秋招阿里笔试算法题

    import java.util.Scanner;//23届秋招阿里笔试第一题:二进制求解(100%) public class Main1 {public static void f1(int n) ...

  8. 阿里笔试 8-28 字符串交换

    阿里笔试 题目一: 对于一个01字符串,每次只能任意交换两个元素,或者把0变成1,或者把1变成0,或者反转整个字符串.那么从A串变成B串至少需要多少步. 例子,1111000变成0010011至少需要 ...

  9. R(八): R分词统计-老九门

    分析文本内容基本的步骤:提取文本中的词语 -> 统计词语频率 -> 词频属性可视化.词频:能反映词语在文本中的重要性,一般越重要的词语,在文本中出现的次数就会越多.词云:让词语的频率属性可 ...

最新文章

  1. AngularJS---核心特性
  2. 什么是servlet?servlet的作用?——计算机网络系列学习笔记
  3. 中小企业邮件系统选型攻略
  4. 线程中发送消息阻塞问题解决
  5. 去哪儿-02-HeaderDev
  6. 郭宏志的android无线点餐系统,Android无线点餐系统--含代码.doc
  7. 计算机一级在线练习,计算机一级练习系统
  8. 2016年零售业CIO的七大革命性挑战
  9. Java 实例变量 和 实例方法 以及调用
  10. 图解三层交换机:局域网都用它来组网
  11. Python100天学习教程(Python学习视频_Python学习路线):Day01 初识Python
  12. 高数 | 极坐标下弧微元(线元ds)的推导
  13. CAD重装时显示已安装
  14. 深度学习论文: Learning to Resize Images for Computer Vision Tasks及其PyTorch实现
  15. 2021HW参考|防守方经验总结
  16. 计算机图形学 :中点画圆法
  17. 联想Lephone与Apple iPAD的完美组合
  18. 科普:蓝绿部署、金丝雀发布(灰度发布)、A/B测试
  19. AWTRIX像素屏时钟搭建
  20. 深入浅出JS—03 函数闭包和内存泄漏

热门文章

  1. 无线路由器及Wi-Fi组网指南(史上最全)
  2. win32简单只读文件程序
  3. 2022前端秋招面试题总结 阿里 腾讯 字节 百度 网易 京东 小红书 快手面试记录
  4. 微信小程序--红色星球
  5. 微信小游戏上线字节平台超全攻略
  6. C/C++程序固定单核CPU运行(几个示例)
  7. 有关神经网络的训练算法,神经网络算法通俗解释
  8. vue移动端监听切屏次数
  9. 关于Navicat Premium连接Oracle数据库闪退(失败)的解决办法(带ocl.dll)
  10. CRAFTS:端对端的场景文本检测器