banana band bee absolute acm ba b band abc
2 3 1 0
代码:
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; struct Trie { int cnt; Trie *next[27]; Trie() { cnt=0; for(int i=0;i<27;i++) next[i]=NULL; } }root; void create(char *s) { Trie *p=&root; int len=strlen(s); for(int i=0;i<len;i++) { int id=s[i]-'a'; if(p->next[id]==NULL) { p->next[id]=new Trie; p->next[id]->cnt++; } else p->next[id]->cnt++; p=p->next[id]; } } int find(char *s) { Trie *p=&root; int len=strlen(s); for(int i=0;i<len;i++) { int id=s[i]-'a'; if(p->next[id]==NULL) return 0; p=p->next[id]; } return p->cnt; } int main() { char s[11]; while(gets(s)&&s[0]!='\0') create(s); while(cin>>s) cout<<find(s)<<endl; return 0; }
原文地址:http://blog.csdn.net/sr_19930829/article/details/37933985