学校图书馆共有 300 万册图书,想统计其中 Computer , Science ,计算机,科学这几个词出现的次数,并按照自然年度分类,如 2016 年出版的书籍中这几个词各自出现的
来源:互联网 发布:linux计划任务每分钟 编辑:程序博客网 时间:2024/05/17 09:06
学校图书馆共有 300 万册图书,想统计其中 Computer , Science ,计算机,科学这几个词出现的次数,并按照自然年度分类,如 2016 年出版的书籍中这几个词各自出现的次数,
2015 年······依次类推。
题目来源 链接:https://www.nowcoder.com/questionTerminal/0b09751acbb64f9d8c63706052748cd4
来源:牛客网
以下是自己根据多层结构构造统计方法,如果有不对,欢迎留言
import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;class book{ String contents; int byear; public String getContents() { return contents; } public void setContents(String contents) { this.contents = contents; } public int getByear() { return byear; } public void setByear(int byear) { this.byear = byear; }}class yearCount { List<countNum> numSet = new ArrayList<countNum>(); int byear; public List<countNum> getNumSet() { return numSet; } public void setNumSet(List<countNum> numSet) { this.numSet = numSet; } public int getByear() { return byear; } public void setByear(int byear) { this.byear = byear; }}class countNum { String name; int num; public countNum() { } public countNum(String name, int num) { super(); this.name = name; this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; }}public class Test { List<yearCount> counts = new ArrayList<yearCount>(); Map<Integer, Integer> years = new HashMap<Integer, Integer>(); Map<String, Integer> names = new HashMap<String, Integer>(); public void count(String str, int byear,int nums) { if (years.get(byear) == null) { yearCount ycount = new yearCount(); ycount.setByear(byear); years.put(byear, (counts.size() - 1)); ycount.getNumSet().add(new countNum(str, nums)); names.put(str + byear, (ycount.getNumSet().size() - 1)); } else if (names.get((str + "" + byear)) == null) { int y = names.get(byear); counts.get(y).getNumSet().add(new countNum(str, nums)); names.put(str + byear, (counts.get(y).getNumSet().size() - 1)); } else { int i = names.get((str + "" + byear)); int y = names.get(byear); int num = counts.get(y).getNumSet().get(i).num; counts.get(y).getNumSet().get(i).setNum((nums+num)); } } public void add(String str,int byear,String index){ String[] s= str.split(index); count(str,byear, (s.length-1)); } public void main(book v) { add(v.contents,v.byear,"科学"); add(v.contents,v.byear,"Computer"); add(v.contents,v.byear,"Science"); add(v.contents,v.byear,"计算机"); }}
阅读全文
0 0
- 学校图书馆共有 300 万册图书,想统计其中 Computer , Science ,计算机,科学这几个词出现的次数,并按照自然年度分类,如 2016 年出版的书籍中这几个词各自出现的
- 统计一个字符串中每个字符出现的次数,并按自然顺序输出
- (Java)统计随机产生的字母各自出现次数
- python编程:统计文件中出现次数最多的前10个词,并按出现次数排列它们
- 找出出现次数最多的几个数值
- Java实现 统计单词出现的次数并按照单词频率从高到低输出
- 统计字符串中出现次数最多的字母并输出
- 统计并输出英语短文中单词出现的次数
- 统计数组中出现次数最多的元素并输出
- 统计文件中数据出现的次数并排序
- java实现读取一篇英文文章,统计其中每个单词出现的次数并排序输出
- 利用自然顺序统计字符串中每个字符的出现次数
- js判断字符串中出现次数最多的字符 并统计出现次数
- 统计一个单位职工的年龄,要求把相同年龄最多的那个年龄找出来(可能有几个这样的年龄),并统计出现的次数
- IOS菜鸟的所感所思(十一)——统计文本中单词出现的次数并按照次数高低排序
- 上千万或上亿数据(有重复),统计其中出现次数最多的N个数据. C++实现
- 统计文件中某个词出现的次数
- 统计文本中某些词出现的次数
- mybatis if else 判断 传入整数为0时 不能过滤的解决方案
- unity 开发手机端拍照功能
- 温故而知新(三)Java基础:循环结构、分支结构、数组、Arrays 类
- Ionic3 启动白屏 加快app启动速度 --记录
- 【网络流24题】搭配飞行员(最大流+二分图匹配)
- 学校图书馆共有 300 万册图书,想统计其中 Computer , Science ,计算机,科学这几个词出现的次数,并按照自然年度分类,如 2016 年出版的书籍中这几个词各自出现的
- java 问题定位工具的使用
- php中出现Strict Standards: Only variables should be passed by reference in的解决方法
- 内存管理(下)
- 高性能的给RecyclerView加上HeaderView和FooterView
- angular框架用于文本框取值
- scrapy模拟表单爬虫
- 接口和抽象类的区别
- BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树