zoukankan      html  css  js  c++  java
  • 百度之星 预赛004--字典树

    #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++)
        {
            p=p->next[s[i]-'A'];
        }
        printf("%d
    ",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;
    }
  • 相关阅读:
    mysql8.0.20安装
    MySQL EXPLAIN结果集分析
    初次安装aliSql
    升级vim到8.0
    REPL环境对语言的帮助
    Python环境搭建及pip的使用
    mysql数据库分库分表(Sharding)
    Git的使用
    Promise的初步认识
    对引用的文件起别名
  • 原文地址:https://www.cnblogs.com/WDKER/p/5495010.html
Copyright © 2011-2022 走看看