zoukankan      html  css  js  c++  java
  • 基本算法思维——WEB输入内容相似性检测应用

    问题:

    小B所在的团队正在开发一个WEB输入内容相似性检测应用,她想到的一种方法是统计用户输入内容中不同单词的出现频率,据此建立一个向量表示用户输入的内容。用户输入的内容已经经过过滤处理,只剩下单词和空格,没有标点符号。各个单词出现频率按从小到大的顺序排列后,即构成了用户输入内容的向量表示。由于用户输入的内容可能很长,单靠人力完全无法找出来。因此小B希望你能帮忙编写一个程序,输出用户内容的向量表达


    分析:使用特定数据结构记录重复key

    (1)使用HashMap记录重复key,存取效率高,方便。且map可以单独获取key或value的集合。

    (2)使用String的字符串分割方法

    code:

     1 import java.util.Arrays;
     2 import java.util.HashMap;
     3 import java.util.Map;
     4 import java.util.Scanner;
     5 
     6 public class Main {
     7 
     8     public static void main(String[] args) {
     9         Scanner s = new Scanner(System.in);
    10         while(s.hasNext()) {
    11             String str = s.nextLine();
    12             String[] temp = str.split(" ");
    13             Map<String,Integer> map = new HashMap<String,Integer>();
    14             /*
    15             for(int i=0;i<temp.length;i++) {
    16                 Integer count = map.get(temp[i]);
    17                 if(count==null || count ==0) {
    18                     map.put(temp[i], 1);
    19                 }else {
    20                     map.put(temp[i], count+1);
    21                 }
    22             }*/
    23             //改进
    24             for(String cont:temp) {
    25                 if(map.containsKey(cont)) {
    26                     map.put(cont, map.get(cont)+1);
    27                 }else {
    28                     map.put(cont, 1);
    29                 }
    30             }
    31             //返回value集合
    32             Object[] dp = map.values().toArray();
    33             Arrays.sort(dp); //排序
    34             
    35             //输出前先建造打印结果
    36             StringBuilder build = new StringBuilder(""+dp[0]);
    37             for(int i=1;i<dp.length;i++) {
    38                 build.append(" "+dp[i]);
    39             }
    40             System.out.println(build.toString());
    41             
    42         }
    43 
    44     }
    45 
    46 }

     

  • 相关阅读:
    Haskell Types与Typeclasses
    Haskell Tuple相关总结
    Haskell List相关操作
    Emacs 常用快捷键
    Emacs 参考资料
    Haskell Platform (windows)
    生成zip压缩包
    递归复制一个文件
    写表格
    读表格
  • 原文地址:https://www.cnblogs.com/dream-flying/p/12800612.html
Copyright © 2011-2022 走看看