hdu——1251—— 统计难题
来源:互联网 发布:淘宝专业盗图 编辑:程序博客网 时间:2024/05/16 14:27
Problem Description
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.
注意:本题只有一组测试数据,处理到文件结束.
注意:本题只有一组测试数据,处理到文件结束.
Output
对于每个提问,给出以该字符串为前缀的单词的数量.
Sample Input
bananabandbeeabsoluteacmbabbandabc
Sample Output
2310
#include<stdio.h>#include<string>#include<iostream>using namespace std;char a[11];struct node{ int n; struct node*a[26]; node() { n=1; for(int i=0;i<26;i++) { a[i]=0; } }};node*root;void insert(const string &s){ node*current=root; for(int i=0;i<s.size();i++) { if(current->a[s[i]-'a']!=0) { current=current->a[s[i]-'a']; current->n++; } else { node*newnode=new node(); current->a[s[i]-'a']=newnode; current=newnode; } }}int find(const string&s){ node*current=root; for(int i=0;i<s.size();i++) { if(current->a[s[i]-'a']!=0) { current=current->a[s[i]-'a']; } else { return 0; } } return current->n;}int main(){ root=new node(); string s; bool stop=false; while(cin.getline(a,11)) { s=a; if(s!="") { if(!stop) insert(s); else cout<<find(s)<<endl; } else { stop=true; } } return 0;}
- HDU 1251 — 统计难题
- HDU——1251 统计难题
- hdu——1251—— 统计难题
- HDU 1251 ——统计难题(Trie 入门)
- 字典树——统计难题 ( HDU 1251 )
- HDU 1251 统计难题——字典树
- hdu1251—统计难题
- hdu1251——统计难题
- hdu1251——统计难题
- HDU 1251 统计难题 (Trie树——字符串算法)
- HDU 1251 统计难题
- HDU 1251 统计难题
- hdu 1251 统计难题
- HDU 1251:统计难题
- HDU 1251 统计难题
- Hdu-1251 统计难题
- hdu 1251 统计难题
- hdu 1251 统计难题
- oracle学习笔记(4)_orcle中的基本命令
- 别人写的代码看起来容易,自己写未必写得好
- state_activated and ListView item选中效果
- org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.ap解决方案
- Android WallpaperManager crops image
- hdu——1251—— 统计难题
- jquery 动态删除tr行数据
- MessageBox in WPF
- 一个有意思的类型实现,可惜是个半成品
- 常见的SVN图标含义
- windows资源管理(内核对象/GDI对象/user对象)
- db2
- thrift 0.9.0 tutorial例子
- 数据查询优化技巧