hdu 1251 字典树水题(还是没hold住,又刷题了,哎~)

简单的字典树的应用

View Code
#include<stdio.h>
#include<string.h>
char s[15];
class trie{
public :
int num;
trie* child[27];
trie()
{
num=0;
memset(child,0,sizeof(child));
}
}root;
void insert(char *s)
{
class trie *cur=&root;
int len=strlen(s);
for(int i=0;i<len;i++)
{
int id=s[i]-'a';
if(!cur->child[id])
cur->child[id]=new trie;
cur=cur->child[id];
cur->num++;
}
}
int find(char *s)
{
class trie *cur=&root;
int len=strlen(s);
for(int i=0;i<len;i++)
{
int id=s[i]-'a';
if(!cur->child[id]) return 0;
cur=cur->child[id];
}
return cur->num;
}
int main()
{
while(gets(s))
{
if(strcmp(s,"")==0) break;
insert(s);
}
while(scanf("%s",s)!=EOF)
printf("%d\n",find(s));
return 0;
}



posted @ 2011-11-30 22:13  Because Of You  Views(324)  Comments(0Edit  收藏  举报