hdu 1251 (Trie 树)
来源:互联网 发布:mac cd命令进入文件夹 编辑:程序博客网 时间:2024/06/07 22:13
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.
注意:本题只有一组测试数据,处理到文件结束.
Output
对于每个提问,给出以该字符串为前缀的单词的数量.
Sample Input
banana
band
bee
absolute
acm
ba
b
band
abc
Sample Output
2
3
1
0
用g++ 超内存, 用c++不会
#include <iostream>#include <cstring>#include <cstdio>#include <string>using namespace std;const int sonnum=26,base='a';char s1[12],ss[12];struct Trie{ int num; bool flag; struct Trie *son[sonnum]; Trie() { num=1,flag=false; memset(son,0,sizeof(son)); }};Trie *NewTrie(){ Trie *temp=new Trie; return temp;}void Insert(Trie *root,char *s){ Trie *temp=root; while(*s){ if(temp->son[*s-base]==NULL) { temp->son[*s-base]=NewTrie(); } else temp->son[*s-base]->num++; temp=temp->son[*s-base]; s++; } temp->flag=true;}int search(Trie *root,char *s){ Trie *temp=root; while(*s) { if(temp->son[*s-base]==NULL) return 0; temp=temp->son[*s-base]; s++; } return temp->num;}int main(){ Trie *root=NewTrie(); root->num=0; while(gets(s1)&&strcmp(s1,"")!=0) { Insert(root,s1); } while(cin>>ss) { int ans=search(root,ss); cout<<ans<<endl; } return 0;}
0 0
- hdu 1251 (Trie 树)
- HDU 1251 Trie树
- hdu 1251 trie树
- Trie 树(字典树)HDU 1251
- hdu 1251 统计难题(trie树)
- hdu 1251 统计难题 (trie树)
- Trie树入门:HDU 1251
- HDU 1251 Trie字典树
- hdu 1251 入门trie树
- HDU 1251 基础的Trie树(字典树)
- Trie树(字典树)HDU——1251
- HDU 1251 统计难题 字典树入门(Trie)
- HDU 1251 统计难题 (字符串-Trie树)
- hdu 1251 (字典树 Trie 模板题)
- HDU 1251 统计难题(trie树入门)
- (字典树Trie Tree)HDU 1251 统计难题
- hdu 1251 统计难题//trie树
- hdu 1251 统计难题 trie树
- CF gym: Feel Good(单调栈)
- centos7安装并配置nginx+php
- iOS开发架构
- C++ 栈和队列的使用
- BZOJ P3504[Cqoi2014]危桥
- hdu 1251 (Trie 树)
- 清空Qtablewiget 表格的内容
- Android视图SurfaceView的实现原理分析
- java程序中,如何安全的结束一个正在运行的线程
- 激光雷达:Pandar 40
- 文章标题
- jvm内存溢出解决方法
- 一个二维码实现同时支持AppStore下载地址 、安卓端下载地址
- 批量处理一个文件夹里面的所有图片转换为灰度图片