标签:
banana band bee absolute acm ba b band abc
2 3 1 0
#include<stdio.h> #include<string.h> char s[12]; struct Trie { Trie *next[26]; int v; }root; //字典树定义 void CreateTrie(char *s) { Trie *p=new Trie; p=&root;//指针指向结构体 int i,j; int len=strlen(s); int id; for(i=0;i<len;i++) { id=s[i]-'a'; if(p->next[id]==NULL) { Trie *q=new Trie; q->v=1;//初始为1 for(j=0;j<26;j++) q->next[j]=NULL; p->next[id]=q; p=p->next[id]; } else { p->next[id]->v++; p=p->next[id]; } } } //生成字典树 int FindTrie(char *s) { int i; int id; Trie *p=new Trie; p=&root; int len=strlen(s); for(i=0;i<len;i++) { id=s[i]-'a'; p=p->next[id]; if(p==NULL) return 0; } return p->v; } //字典树查找 int main() { int i; int ans; for(i=0;i<26;i++) root.next[i]=NULL; while(gets(s)&&s[0]!='\0') { //以空行为结束符,用\0而不是\n CreateTrie(s); } memset(s,0,sizeof(s)); while(scanf("%s",s)!=EOF) { ans=FindTrie(s); printf("%d\n",ans); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/wangluoershixiong/article/details/47003487