字符串hash(java hashMap)

描述

给定N个单词(每个单词长度不超过100,单词字符串内仅包含小写字母)。

请求出N个单词中共有多少个不同的单词。

输入第1行包含1个正整数N。
接下来N行每行包含一个字符串。输出一个整数,代表不同单词的个数样例输入

5
lalala
hahaha
haha
lalala
haha

样例输出

3

提示* N <= 10000000
* 不同单词个数不超过100000

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
public class Main{
  public static void main(String[]args) throws Exception{
    BufferedReader cin=new BufferedReader(new InputStreamReader(System.in));
    int n=Integer.parseInt(cin.readLine());
    Set<String> ans=new HashSet<String>();
    for(int i=1;i<=n;i++){
      ans.add(cin.readLine());
    }
    System.out.println(ans.size());
    
}
}

必须使用BufferedReader读取,否则会超时。

关于map

treeMap按照规则排序

hashMap无序

linkedMap输入顺序

 

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注

12 + 19 =