1 5 she he say shr her yasherhs
3
#include<stdio.h> #include<malloc.h> typedef struct nnn { int flag; struct nnn *next[26]; }node; node *builde() { node *p=(node*)malloc(sizeof(node)); p->flag=0; for(int i=0;i<26; i++) p->next[i]=NULL; return p; } node *root; void insert(char str[]) { node *p=root; for(int i=0;str[i]!='\0';i++) { if(p->next[str[i]-'a']==NULL) p->next[str[i]-'a']=builde(); p=p->next[str[i]-'a']; } p->flag++; } int count(char str[]) { int sum=0; for(int i=0;str[i]!='\0';i++) { node *p=root; for(int j=i;str[j]!='\0';j++) { if(p->next[str[j]-'a']==NULL) break; p=p->next[str[j]-'a']; sum+=p->flag; p->flag=0; } } return sum; } char str[1000005]; int main() { int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); root=builde(); while(n--) { scanf("%s",str); insert(str); } scanf("%s",str); printf("%d\n",count(str)); } }
hdu2222Keywords Search (字典树),布布扣,bubuko.com
原文地址:http://blog.csdn.net/u010372095/article/details/38089723