[hihoCoder]1014 Trie水题
最最最最最最最基本的Trie词频统计应用了.
package trie;
import java.util.Scanner;
public class Main {
    public static void main( String[] args ) {
        TrieTree tt = new TrieTree();
        Scanner sc = new Scanner( System.in );
        while(sc.hasNext()){
            int n = sc.nextInt();
            for(int i=0;i<n;i++){
                tt.insert( sc.next() );
            }
            int m = sc.nextInt();
            for(int i=0;i<m;i++){
                tt.query( sc.next() );
            }
        }
    }
}
class TrieTree {
    public Node root;
    public TrieTree() {
        root = new Node();
    }
    public void insert( String word ) {
        if( this.root == null || word == null || word.isEmpty() )
            return;
        int i = 0;
        Node p = this.root;
        while( i < word.length() ) {
            if( p.node[ word.charAt( i ) - 'a' ] == null ) {
                p.node[ word.charAt( i ) - 'a' ] = new Node( word.charAt( i ) );
                p.node[ word.charAt( i ) - 'a' ].count++;
                p = p.node[ word.charAt( i ) - 'a' ];
            } else {
                p.node[ word.charAt( i ) - 'a' ].count++;
                p = p.node[ word.charAt( i ) - 'a' ];
            }
            i++;
        }
    }
    public boolean query( String word ) {
        if( word.isEmpty() || word == null )
            return false;
        Node p = this.root;
        int i = 0;
        int ret = 0;
        while( i < word.length() ) {
            if( p.node[ word.charAt( i ) - 'a' ] == null ) {
                ret = 0;
                System.out.println( ret );
                return false;
            } else {
                ret = p.node[ word.charAt( i ) - 'a' ].count;
                p = p.node[ word.charAt( i ) - 'a' ];
            }
            i++;
        }
        System.out.println( ret );
        return true;
    }
}
class Node {
    public static final int MAX_NODE = 26;
    public Node[] node = new Node[ MAX_NODE ];
    public char data;
    public int count = 0;
    public Node() {
    }
    public Node( char data ) {
        this.data = data;
    }
}
样例输入
- 
5
babaab
babbbaaaa
abba
aaaaabaa
babaababb
5
babb
baabaaa
bab
bb
bbabbaab样例输出
- 
1
0
3
0
0 
 - 
 
[hihoCoder]1014 Trie水题的更多相关文章
- hdu 1251 (Trie水题)
		
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
 - codevs——4189 字典&&HihoCoder #1014 : Trie树
		
题目描述 Description 最经,skyzhong得到了一本好厉害的字典,这个字典里整整有n个单词(1<=n<=200000) 现在skyzhong需要在字典里查询以某一段字母开头的 ...
 - hihoCoder #1014 : Trie树 [ Trie ]
		
传送门 #1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互 ...
 - hihoCoder 1014 Trie树  (Trie)
		
#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 小Hi和小Ho是一对好朋友.出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮 ...
 - Hihocoder #1014 : Trie树 (字典数树统计前缀的出现次数  *【模板】 基于指针结构体实现 )
		
#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助, ...
 - hihocoder 1014: Trie树(Trie树模板题)
		
题目链接 #include<bits/stdc++.h> using namespace std; ; struct T { int num; T* next[]; T() { num=; ...
 - hihocoder #1223 : 不等式 水题
		
#1223 : 不等式 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/1223 ...
 - hihoCoder#1014 Trie树 (前缀树)
		
题目大意:给一本有n个单词的词典,有m次询问,每次询问的是该词典中有多少个单词有共同的某个前缀. 题目分析:在添加单词建立trie的时候,每经过一个节点就意味着该节点和它的各级祖先节点是某个单词的前缀 ...
 - hihoCoder 1014 : Trie树(字典树)
		
传送门 Description 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这一天,他们遇到了一本词典,于是小Hi就向小 ...
 
随机推荐
- QT第五天学习
			
回顾: QFile QTextSream QDataSream QFileInfo QDir Dir entryList 返回目录下所有文件和目录的名字 entryInfoList 返回目录下所有文件 ...
 - iPhone应用中加入评分功能
			
NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple.com/WebObjects/MZStor ...
 - EhLib DBGridEh组件在Delphi中应用全攻略总结(转)
			
EhLib DBGridEh组件在Delphi中应用全攻略总结(转) http://blog.sina.com.cn/s/blog_94b1b40001013xn0.html 优化SQL查询:如何写出 ...
 - C#  安装包制作
			
VS制作安装包的一般步骤. 一·新建项目 (1)新建 (2)界面跳转 二·添加引用 (1)添加卸载程序 1.在'C:WINDOWSsystem32'路径下,找到msiexec.exe . 2.将msi ...
 - EditText的功能与用法
			
EditText与TextView非常相似,它甚至与TextView共用了绝大部分XML属性和方法.EditText和TextView的最大区别在于:EditText可以接受用户输入. EditTex ...
 - HTML URL
			
HTML 统一资源定位器(Uniform Resource Locators) URL 是一个网页地址. URL可以由字母组成,如"runoob.com",或互联网协议(IP)地址 ...
 - JavaScript 模拟策略模式
			
/** * 模拟一个接口,其方法会抛出异常: */ function FlyInter () {} FlyInter.prototype.fly = function() { throw '实现这个接 ...
 - 【LeetCode题解】二叉树的遍历
			
我准备开始一个新系列[LeetCode题解],用来记录刷LeetCode题,顺便复习一下数据结构与算法. 1. 二叉树 二叉树(binary tree)是一种极为普遍的数据结构,树的每一个节点最多只有 ...
 - MVC无刷新查询,PagedList分页控件使用,导出Excel
			
使用MVC开发也有一段时间了,总结下无刷新部分视图的使用.PagedList分页控件的使用. @using PagedList @model StaticPagedList<T> < ...
 - ThreadLocal模式的原理
			
在JDK的早期版本中,提供了一种解决多线程并发问题的方案:java.lang.ThreadLocal类.ThreadLocal类在维护变量时,实际使用了当前线程(Thread)中的一个叫做Thread ...