zoukankan      html  css  js  c++  java
  • POJ 2001 Shortest Prefix

    字典树基本题。

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <cstdlib>
    
    using namespace std;
    #define N 1027
    
    struct node
    {
        int count;
        node *next[30];
    }*root;
    
    char ss[N][30];
    
    node *create()
    {
        node *p;
        p = (node *)malloc(sizeof(node));
        p->count = 1;
        for(int i=0;i<26;i++)
            p->next[i] = NULL;
        return p;
    }
    
    void release(node *p)
    {
        for(int i=0;i<26;i++)
        {
            if(p->next[i] != NULL)
                release(p->next[i]);
        }
        free(p);
    }
    
    void insert(char *ss)
    {
        int i=0,k;
        node *p = root;
        while(ss[i])
        {
            k = ss[i++] - 'a';
            if(p->next[k] == NULL)
                p->next[k] = create();
            else
                p->next[k]->count++;
            p = p->next[k];
        }
    }
    
    void search(char *ss)
    {
        int i = 0,k,j,flag = 0;
        node *p = root;
        while(ss[i] && !flag)
        {
            k = ss[i++] - 'a';
            p = p->next[k];
            if(p->count == 1)
            {
                flag = 1;
                printf("%s ",ss);
                for(j=0;j<i;j++)
                    printf("%c",ss[j]);
                printf("
    ");
            }
        }
        if(!flag)
            printf("%s %s
    ",ss,ss);
    }
    
    int main()
    {
        int i=0,j,k;
        root = create();
        while(scanf("%s",ss[i])!=EOF)
        {
            insert(ss[i]);
            i++;
        }
        for(j=0;j<i;j++)
            search(ss[j]);
        release(root);
        return 0;
    }
    View Code
  • 相关阅读:
    判断某个元素是否显示/隐藏
    文件file
    文件上传原理--FileReader
    angular搭建
    判断滚动条滚到底部
    bugDone
    webstorm界面主题
    自定义滚动条
    用电脑免费给手机发短信(转)
    c++ 面试常见问题
  • 原文地址:https://www.cnblogs.com/whatbeg/p/3537551.html
Copyright © 2011-2022 走看看