#include <iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
char str[11];
struct Trie
{
Trie *child[26];
int num;
Trie()
{
num=0;
memset(child,NULL,sizeof(child));
}
};
Trie *root;
void Tree_Insert(char *str)
{
Trie *s=root;
int i=0;
while(str[i]!='\0')
{
int id=str[i]-'a';
if(s->child[id]==0)
s->child[id]= new Trie();
s=s->child[id];
s->num++;
i++;
}
}
int Tree_Find(char *str)
{
Trie *s=root;
int i=0;
while(str[i]!='\0')
{
int id=str[i]-'a';
if(s->child[id]==0)
return 0;
else
s=s->child[id];
i++;
}
return s->num;
}
int main()
{
int i,j;
root=new Trie();
while(gets(str)&&str[0]!='\0')
Tree_Insert(str);
while(scanf("%s",str)!=EOF)
printf("%d\n",Tree_Find(str));
return 0;
}
超內存,c++就ac了。。。