标签:c++
题目链接:
代码:
#include<iostream> #include<cstdio> #include<cstring> using namespace std; struct node{ int ans; node* next[26]; node() { ans=1; for(int ii=0;ii<26;ii++) next[ii]=NULL; } }*Trie; int trie_find(char* str) { node* p=Trie; int len=strlen(str); for(int i=0;i<len;i++) { if(p->next[str[i]-'a']==NULL) return 0; p=p->next[str[i]-'a']; } return p->ans; } void trie_insert(char* str) { node* p=Trie; int len=strlen(str); for(int i=0;i<len;i++) { if(p->next[str[i]-'a']==NULL) p->next[str[i]-'a']=new node(); else (p->next[str[i]-'a']->ans)++; p=p->next[str[i]-'a']; } return; } int main() { int n; char str[15]; scanf("%d",&n); Trie=new node(); while(n--) { scanf("%s",str); trie_insert(str); } scanf("%d",&n); while(n--) { scanf("%s",str); cout<<trie_find(str)<<endl; } return 0; }
标签:c++
原文地址:http://blog.csdn.net/axuan_k/article/details/45972367