-
统计难题
- HDU - 1251
- 题意:输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词
- ,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串
-
#include<iostream> #include<cstring> #include<stdio.h> using namespace std; #define maxn 26 char str[maxn]; struct node { int num; struct node*nxt[maxn]; node() { for(int i=0; i<26; i++) nxt[i]=NULL; num=0; } } root; void updata(char *word) { node *p=&root; for(int i=0; word[i]; i++) { if(p->nxt[word[i]-'a']==NULL) p->nxt[word[i]-'a']=new node ; p = p->nxt[word[i]-'a']; p->num++; } } int fond(char *word) { node *p=&root; for(int i=0; word[i]; i++) { if(p->nxt[word[i]-'a']==NULL) return 0; p=p->nxt[word[i]-'a']; } return p->num; } int main() { while(gets(str)) { if(strlen(str)==0||str==" ") break; updata(str); } while(scanf("%s",str)!=EOF) printf("%d\n",fond(str)); return 0; }
统计难题 HDU - 1251 -字典树-链表实现
最新推荐文章于 2019-09-20 17:42:27 发布