标签:
20 ad ae af ag ah ai aj ak al ads add ade adf adg adh adi adj adk adl aes 5 b a d ad s
0 20 11 11 2
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct s
{
struct s * child[26];
int cnt,id;
}node,*Node;
Node root;
void insert(char *s,int id)
{
Node cur,newnode;
int i,now,len;
len=strlen(s);
cur=root;
for(i=0;i<len;i++)
{
now=s[i]-'a';
if(cur->child[now]!=NULL)
{
cur=cur->child[now];
}
else
{
newnode=(Node)calloc(1,sizeof(node));
cur->child[now]=newnode;
cur=cur->child[now];
cur->cnt=0;
cur->id=-1;
}
if(cur->id!=id)
{
cur->cnt++;
cur->id=id;
}
}
}
void seach(char *s)
{
Node cur;
cur=root;
int i,len=strlen(s);
for(i=0;i<len;i++)
{
int now=s[i]-'a';
if(cur->child[now]==NULL)
break;
cur=cur->child[now];
}
if(i<len)
printf("0\n");
else
printf("%d\n",cur->cnt);
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i,j;
char str[21];
root=(Node)calloc(1,sizeof(node));
for(i=0;i<n;i++)
{
scanf("%s",str);
int len=strlen(str);
for(j=0;j<len;j++)
insert(str+j,i);
}
int m;
scanf("%d",&m);
while(m--)
{
scanf("%s",str);
seach(str);
}
}
}标签:
原文地址:http://blog.csdn.net/yu_ch_sh/article/details/44117463