#include <bits/stdc++.h> using namespace std; struct Node { int num; Node* next[26]; }node; void insert(string s) { int slen = s.length(); Node* t = &node; for(int i = 0; i<slen;i++) { int id = s[i] -'a'; if(t->next[id] == NULL) t->next[id] = new Node; t = t->next[id]; t->num++; } } int find(string s) { int slen = s.length(); Node* t = &node; for(int i = 0; i<slen;i++) { int id = s[i] -'a'; t = t->next[id]; if(t == NULL)return 0; } return t->num; } int main() { int n; cin>>n; for(int i = 0; i<n; i++) { string s; cin>>s; insert(s); } int num; cin>>num; for(int i = 0;i<num;i++) { string s; cin>>s; int tmp = find(s); cout<<tmp<<endl; } return 0; }
hiho1014Trie树
猜你喜欢
转载自blog.csdn.net/amous_x/article/details/80073329
今日推荐
周排行