#include<bits/stdc++.h>
using namespace std;
const int L=12;
struct T
{
int num;
T* next[26];
T()
{
num=0;
int i;
for(int i=0;i<26;i++)
next[i]=NULL;
}
}t;
void insert(char str[])
{
T* p=&t;
for(int i=0;str[i];i++)
{
int a=str[i]-'a';
if(p->next[a]==NULL)
p->next[a]=new T;
p=p->next[a];
p->num++;
}
}
int find(char str[])
{
T* p=&t;
for(int i=0;str[i];i++)
{
int a=str[i]-'a';
if(p->next[a]==NULL)
return 0;
p=p->next[a];
}
return p->num;
}
int main()
{
int n,m;
char str[L];
scanf("%d",&n);
while(n--)
scanf("%s",str),insert(str);
scanf("%d",&m);
while(m--)
scanf("%s",str),printf("%d\n",find(str));
}
hihocoder_1014: Trie树(Trie树模板题)
原文作者:Trie树
原文地址: https://blog.csdn.net/wy_2016/article/details/58219839
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/wy_2016/article/details/58219839
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。