码迷,mamicode.com
首页 > 其他好文 > 详细

百度之星 预赛004--字典树

时间:2016-05-15 13:58:43      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <string>
#include <iostream>
using namespace std;

struct node {
    int cnt;//记录个数;
    struct node *next[26];
    node()
    {
        cnt=0;
        memset(next,NULL,sizeof(next));
    }
};

void buildtrie(node *root,string s)//建树;
{
    node *p=root;
    node *tmp=NULL;
    int l=s.size();
    for(int i=0;i<l;i++)
    {
        if(p->next[s[i]-A]==NULL)
        {
            tmp=new node;
            p->next[s[i]-A]=tmp;
        }
        p=p->next[s[i]-A];
    }
    p->cnt++;
}

void findtrie(node *root ,string s)//查询
{
    node *p=root;
    int l=s.size();
    for(int i=0;i<l;i++)
    {
        if(p->next[s[i]-a]==NULL)
       {
           tmp=new node ;
           p->next[s[i]-a]=tmp; 
       }
        p=p->next[s[i]-A];
    }
    printf("%d\n",p->cnt-1);
}
/*
void del(node *root)
{
    for(int i=0;i<10;i++)
        if(root->next[i])
            del(root->next[i]);
    delete(root);
}
*/
int main()
{
    int n;
    string s;
    node root;
    scanf("%d",&n);
    while(n--)
    {
        cin >> s;
        sort(s.begin(),s.end());
        buildtrie(&root,s);
        findtrie(&root,s);
    }
    return 0;
}

 

百度之星 预赛004--字典树

标签:

原文地址:http://www.cnblogs.com/WDKER/p/5495010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!