#include<stdio.h>
#include<string.h>
struct node
{
int son[26];
}tree[1000];
int count=0;
void insert(char *str,int id)
{
int now=0,i,j;
char ch;
for(i=0;str[i]!='\0';i++)
{
ch=str[i]-'a';
if(tree[now].son[ch]==0)
{
count++;
tree[now].son[ch]=count;
}
now=tree[now].son[ch];
}
}
int find(char *str)
{
char ch;
int now=0,count=0,i,j;
for(i=0;str[i]!='\0';i++)
{
ch=str[i]-'a';
now=tree[now].son[ch];
if(now==0)
{
return 0;
break;
}
}
return 1;
}
int main(void)
{
char str[100],str2[100];
int i,j,n;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
scanf("%s",str);
//printf("%s",str);
//printf("\n");
insert(str,i);
}
scanf("%s",str2);
if(find(str2)==0)
printf("NO\n");
else
printf("YES\n");
return 0;
}
acm算法之普通字典树
最新推荐文章于 2022-03-11 10:52:06 发布