zoukankan      html  css  js  c++  java
  • poj 2503 Trie树

      典型的Trie树, 算是复习一下字符串吧, 就是输入有点恶心,代码如下:

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    const int maxn = 500000+100;
    struct Trie{
        bool isword;
        int next[26];
        char words[15];
        Trie(){
            memset(next, -1, sizeof(next));
            isword = false;
        }
    }Root;
    Trie node[maxn];
    int n;
    
    void Insert(char *tar){
        Trie *head = &Root;
        char *s = tar;
        while(*tar!=' ') tar++;
        *tar='';
        tar++;
        while(*tar!=''){
            int id = *tar - 'a';
            if(head->next[id] == -1){
                head->next[id] = n++;
            }
            head = &node[head->next[id]];
            tar++;
        }
        head->isword = true;
        //printf("s = %s
    ", s);
        strcpy(head->words, s);
    }
    
    char *Search(char *tar)
    {
        Trie *head = &Root;
        while(*tar){
            int id = *tar - 'a';
            if(head->next[id] == -1) return NULL;
            head = &node[head->next[id]];
            tar++;
        }
        if(head->isword) return head->words;
        else return NULL;
    }
    
    char str[100];
    
    int main(){
        n = 0;
        while(gets(str)){
            bool kongge = false;
            int len = strlen(str);
            for(int i=0; i<len; i++) {
                if(str[i] == ' '){
                        kongge = true;
                        break;
                }
            }
            if(str[0]<'a'||str[0]>'z') continue;
            if(kongge) Insert(str);
            else {
                char *p = Search(str);
                if(p == NULL) printf("eh
    ");
                else printf("%s
    ", p);
            }
        }
        return 0;
    }
  • 相关阅读:
    扑克牌顺子
    反转字符串
    左旋转字符串
    和为S的两个数
    C++中substr()详解
    STL库中的equal_range()
    和为S的连续正序列
    数组中只出现一次的数
    二叉树的深度
    mysql找安装路经,更改密码
  • 原文地址:https://www.cnblogs.com/xingxing1024/p/5285468.html
Copyright © 2011-2022 走看看