题目:
代码:
#include<bits/stdc++.h>
using namespace std;
bool isend[500005];
int nxt[500005][26];
int n,m,cnt=0;
void insert(char s[],int len){
int now=0;
for(int i=1;i<=len;i++){
int x=s[i]-'a';
if(!nxt[now][x]){
nxt[now][x]=++cnt;
}
now=nxt[now][x];
}
isend[now]=1;
}
int find(char s[],int len){
int now=0;
for(int i=1;i<=len;i++){
int x=s[i]-'a';
if(!nxt[now][x]) return 0;
now=nxt[now][x];
}
return isend[now];
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
char s[15];
scanf("%s",s+1);
insert(s,strlen(s));
}
scanf("%d",&m);
for(int i=1;i<=m;i++){
char s[15];
scanf("%s",s+1);
printf("%d\n",find(s,strlen(s)));
}
return 0;
}