最最最最最最最基本的Trie词频统计应用了.

  1. package trie;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.  
  7. public static void main( String[] args ) {
  8. TrieTree tt = new TrieTree();
  9. Scanner sc = new Scanner( System.in );
  10. while(sc.hasNext()){
  11. int n = sc.nextInt();
  12. for(int i=0;i<n;i++){
  13. tt.insert( sc.next() );
  14. }
  15. int m = sc.nextInt();
  16. for(int i=0;i<m;i++){
  17. tt.query( sc.next() );
  18. }
  19. }
  20. }
  21. }
  22.  
  23. class TrieTree {
  24.  
  25. public Node root;
  26.  
  27. public TrieTree() {
  28. root = new Node();
  29. }
  30.  
  31. public void insert( String word ) {
  32. if( this.root == null || word == null || word.isEmpty() )
  33. return;
  34. int i = 0;
  35. Node p = this.root;
  36. while( i < word.length() ) {
  37. if( p.node[ word.charAt( i ) - 'a' ] == null ) {
  38. p.node[ word.charAt( i ) - 'a' ] = new Node( word.charAt( i ) );
  39. p.node[ word.charAt( i ) - 'a' ].count++;
  40. p = p.node[ word.charAt( i ) - 'a' ];
  41. } else {
  42. p.node[ word.charAt( i ) - 'a' ].count++;
  43. p = p.node[ word.charAt( i ) - 'a' ];
  44. }
  45. i++;
  46. }
  47. }
  48.  
  49. public boolean query( String word ) {
  50. if( word.isEmpty() || word == null )
  51. return false;
  52. Node p = this.root;
  53. int i = 0;
  54. int ret = 0;
  55. while( i < word.length() ) {
  56. if( p.node[ word.charAt( i ) - 'a' ] == null ) {
  57. ret = 0;
  58. System.out.println( ret );
  59. return false;
  60. } else {
  61. ret = p.node[ word.charAt( i ) - 'a' ].count;
  62. p = p.node[ word.charAt( i ) - 'a' ];
  63. }
  64. i++;
  65. }
  66. System.out.println( ret );
  67. return true;
  68. }
  69. }
  70.  
  71. class Node {
  72.  
  73. public static final int MAX_NODE = 26;
  74.  
  75. public Node[] node = new Node[ MAX_NODE ];
  76.  
  77. public char data;
  78.  
  79. public int count = 0;
  80.  
  81. public Node() {
  82.  
  83. }
  84.  
  85. public Node( char data ) {
  86. this.data = data;
  87. }
  88. }

样例输入

  1. 5
  2. babaab
  3. babbbaaaa
  4. abba
  5. aaaaabaa
  6. babaababb
  7. 5
  8. babb
  9. baabaaa
  10. bab
  11. bb
  12. bbabbaab

样例输出

  1. 1
  2. 0
  3. 3
  4. 0
  5. 0

[hihoCoder]1014 Trie水题的更多相关文章

  1. hdu 1251 (Trie水题)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  2. codevs——4189 字典&&HihoCoder #1014 : Trie树

    题目描述 Description 最经,skyzhong得到了一本好厉害的字典,这个字典里整整有n个单词(1<=n<=200000) 现在skyzhong需要在字典里查询以某一段字母开头的 ...

  3. hihoCoder #1014 : Trie树 [ Trie ]

    传送门 #1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互 ...

  4. hihoCoder 1014 Trie树 (Trie)

    #1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 小Hi和小Ho是一对好朋友.出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮 ...

  5. Hihocoder #1014 : Trie树 (字典数树统计前缀的出现次数 *【模板】 基于指针结构体实现 )

    #1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助, ...

  6. hihocoder 1014: Trie树(Trie树模板题)

    题目链接 #include<bits/stdc++.h> using namespace std; ; struct T { int num; T* next[]; T() { num=; ...

  7. hihocoder #1223 : 不等式 水题

    #1223 : 不等式 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/1223 ...

  8. hihoCoder#1014 Trie树 (前缀树)

    题目大意:给一本有n个单词的词典,有m次询问,每次询问的是该词典中有多少个单词有共同的某个前缀. 题目分析:在添加单词建立trie的时候,每经过一个节点就意味着该节点和它的各级祖先节点是某个单词的前缀 ...

  9. hihoCoder 1014 : Trie树(字典树)

    传送门 Description 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这一天,他们遇到了一本词典,于是小Hi就向小 ...

随机推荐

  1. HDU1217:Arbitrage(SPFA)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1217 题目大意 在每种钱币间进行各种交换,最后换回自己如果能赚,那么就Yes,否则No 注意应为有负权 ...

  2. 以脚本方式直接执行修改密码的passwd命令

    以脚本方式直接执行修改密码的passwd命令: 参考: http://bbs.csdn.net/topics/390001865 http://bbs.chinaunix.net/thread-993 ...

  3. IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口

    IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口 背景: 最近公司有一个项目要上线,需要用到iis和tomcat整合,共用80端口.由于公司的数据都非常重要,只通过端口映射到外网的8 ...

  4. 浅谈js代码规范

    要放假了  后天就可以 回家,心里很高兴,忙里偷闲写篇博客吧!!!! 声明:这是我自己总结的,如果有不对的地方请大家不要较真 一 .变量声明 对所有的变量声明,我们都应该指定var,如果没有指定var ...

  5. 模仿qq界面实现(WTL)

    前面对于界面用哪一种我试过用duilib,但是老感觉和MFC差距有点多,终于发现WTL的库能够实现我的所有界面功能,几天的努力终于搞定界面的重写.还是见我的成果吧: 1登录界面: 2主界面: 3.主界 ...

  6. Hadoop权威指南:HDFS-Hadoop存档

    Hadoop权威指南:HDFS-Hadoop存档 [TOC] 每个文件按块方式存储, 每个块的元数据存储在namenode的内存中 Hadoop存档文件或HAR文件是一个更高效的文件存档工具,它将文件 ...

  7. 遍历ul下的li,点击弹出li的索引

    首先我们需要一个html结构 <div > <ul> <li>a</li> <li>a</li> <li>a< ...

  8. 有趣的++i和i++

    作为一个天天和代码“约会”的人来说i++和++i这玩意再熟悉不过了,因为使用频率太高了. 虽然如此,但也未必见得我们真的了解她,不妨猜猜下面的输出结果. #inlcude <stdio.h> ...

  9. C/C++中的联合体

    C/C++中的联合体 利用union可以用相同的存储空间存储不同型别的数据类型,从而节省内存空间.当访问其内成员时可用"."和"->"来直接访问. 当多个 ...

  10. Windows下MySQL多实例安装/主从复制/重置密码

    Windows创建MySQL多实例 安装MYSQL和实例1 运行mysql-installer-community-5.7.16.0.msi 选择组件 MySQL Server 5.7.16 – X6 ...