点击查看代码
#include<bits/stdc++.h>using namespace std;const int N=1e6;
int n,m,idx;
int cnt[N];
char str[N];
int son[N][26];void insert(char* str)
{int p=0;for(int i=0;str[i];i++){int u=str[i]-'a';if(!son[p][u]) son[p][u]=++idx;p=son[p][u];}cnt[p]++;
}void query(char* str)
{int p=0;int ans=0;for(int i=0;str[i];i++){int u=str[i]-'a';if(!son[p][u]) break;p=son[p][u];ans+=cnt[p];}cout<<ans<<endl;
}int main()
{cin>>n>>m;while(n--){cin>>str;insert(str);}while(m--){cin>>str;query(str);}return 0;
}