题目链接:点击这里
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
const int N = 1000010, M = 500000;
int n, m;
int son[M][26], cnt[N], idx;
char str[N];
void insert()
{
int p = 0;
for(int i = 0; str[i]; ++i)
{
int s = str[i] - 'a';
if(!son[p][s]) son[p][s] = ++idx;
p = son[p][s];
}
cnt[p]++;
}
int search()
{
int p = 0, res = 0;
for(int i = 0; str[i]; ++i)
{
int s = str[i] - 'a';
if(!son[p][s]) break;
p = son[p][s];
res += cnt[p];
}
return res;
}
int main()
{
scanf("%d%d", &n, &m);
while(n--)
{
scanf("%s", str);
insert();
}
while(m--)
{
scanf("%s", str);
printf("%d\n", search());
}
return 0;
}