赛码网练习——向量表示
2016-10-01 16:44
260 查看
向量表示
题目描述
小B所在的团队正在开发一个WEB输入内容相似性检测应用,她想到的一种方法是统计用户输入内容中不同单词的出现频率,据此建立一个向量表示用户输入的内容。
用户输入的内容已经经过过滤处理,只剩下单词和空格,没有标点符号。
各个单词出现频率按从小到大的顺序排列后,即构成了用户输入内容的向量表示。
由于用户输入的内容可能很长,单靠人力完全无法找出来。因此小B希望你能帮忙编写一个程序,输出用户内容的向量表达。
输入
输入包括若干行文本数据,每行表示一个用户输入文档。一行文本由单词和空格组成,单词之间由空格分隔,最多不超过10000个ASCII码字符。
样例输入
a bd a d
b abc b a a
输出
对于每个用户输入文档,输出一行向量表示,数值之间用空格分隔。
样例输出
1 1 2
1 2 2
代码优化:输入时如何换行输入,按回车的话就会运行程序。
题目描述
小B所在的团队正在开发一个WEB输入内容相似性检测应用,她想到的一种方法是统计用户输入内容中不同单词的出现频率,据此建立一个向量表示用户输入的内容。
用户输入的内容已经经过过滤处理,只剩下单词和空格,没有标点符号。
各个单词出现频率按从小到大的顺序排列后,即构成了用户输入内容的向量表示。
由于用户输入的内容可能很长,单靠人力完全无法找出来。因此小B希望你能帮忙编写一个程序,输出用户内容的向量表达。
输入
输入包括若干行文本数据,每行表示一个用户输入文档。一行文本由单词和空格组成,单词之间由空格分隔,最多不超过10000个ASCII码字符。
样例输入
a bd a d
b abc b a a
输出
对于每个用户输入文档,输出一行向量表示,数值之间用空格分隔。
样例输出
1 1 2
1 2 2
import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s=new Scanner(System.in); while(s.hasNext()){ String line=s.nextLine();//定义输入的一行字符串 String[] strs=line.split(" ");//以空格分割字符串,成为字符串数组 Map<String,Integer> map=new HashMap<String,Integer>();//创建Map对象,此处用到了泛型 /* 遍历行字符串数组,并放入map键值对中,循环体中先用map.containsKey(Object key)方法判断key是否 是在此map中存在的键,如果不存在,建立新的键值对,如果存在,在旧的键值对的值中+1 */ for(String st:strs){ if(map.containsKey(st)){ map.put(st, map.get(st)+1); }else{ map.put(st, 1); } } //把map值取出用map.values()方法,再转成数组 /* 知识拓展:toArray(new Integer[0])是指返回的数组类型是Integer类型的 如果只写list.toArray(),需要类型强转,返回类型是Object[] 如果写list.toArray(new Integer[5]),就不用类型强转了,返回类型是Integer[] []里的参数的长度应当小于等于实际长度,因为长度不足的话,会自动补上,而如果长度太长的话就 会输出null了,所以一般写实际长度或直接写0,就不会出错。 */ Integer[] counts=map.values().toArray(new Integer[0]); Arrays.sort(counts);//给取出来的map值排序 String ans=""+counts[0];//定义输出的答案数组 for(Integer i=1;i<counts.length;i++){ ans+=" "+counts[i]; } System.out.println(ans); } } }
代码优化:输入时如何换行输入,按回车的话就会运行程序。
相关文章推荐
- 赛码网刷题之向量表示
- Linux_C练习:输入一个整数a,再输入两个整数,输出该整数的二进制表示方法中从右端开始给定位;
- 文本分类(二)特征权重量化器(文档转向量表示)
- 词向量源码解析:(1)词向量(词表示)简单介绍
- C Primer+Plus(十七)高级数据表示 编程练习(一)
- 幸运数(向量Vector类练习)
- Tensorflow教程-字词的向量表示
- java练习 计算n位可被浮点数精确表示的小数
- 练习系列 - 7、打印数据的二进制表示
- 赛码网练习——刮刮卡兑换
- vector向量练习小例子c++代码实例及运行结果
- 【计算几何】向量表示
- 文本深度表示模型Word2Vec 简介 Word2vec 是 Google 在 2013 年年中开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简
- 向量表示,投影,协方差矩阵,正交对角化对于降维的作用
- 练习 3-4 在数的对二的补码表示中,我们编写的itoa函数不能处理最大的负数,即n等于-2^(字长-1)的情况。请解释其原因。修改该函数,使它在任何机器上运行时都能打印出正确的值。
- C Primer+Plus(十七)高级数据表示 编程练习(二)
- Hinton Neural Networks课程笔记4b:神经网络是一种混合概念表示,既可以表示为特征向量,也可以表示为关系
- 斯坦福大学深度学习与自然语言处理第三讲:高级的词向量表示
- vector向量练习小例子c++代码实例及运行结果
- Numpy库学习——向量表示