#include<cstdio>
#include<cstring>
int Tire[1000000][26];
int num[1000000];
int tot=1;
void insert(char *str)
{
int now=0;
int len=strlen(str);
for(int i=0;i<len;i++)
{
int tem=str[i]-'a';
if(Tire[now][tem]==0)
{
Tire[now][tem]=tot++;
}
now=Tire[now][tem];
num[now]++;
}
}
int find(char *str)
{
int now=0;
int len=strlen(str);
for(int i=0;i<len;i++)
{
int tem=str[i]-'a';
if(Tire[now][tem]==0)
return 0;
now=Tire[now][tem];
}
return num[now];
}
int main()
{
char str[100];
while(gets(str)&&str[0]!='\0')
insert(str);
while(gets(str))
printf("%d\n",find(str));
return 0;
}
hdu 1251 字典树
最新推荐文章于 2019-12-07 01:01:01 发布