zoukankan      html  css  js  c++  java
  • HDU 1671 Phone List

    http://acm.hdu.edu.cn/showproblem.php?pid=1671

    依旧是Trie树,和上一题差不太多

    View Code
    #include <stdio.h>
    #include <string.h> 
    #include <stdlib.h> 
    const int MAX=10; 
    typedef struct Trie
    {
        Trie *next[MAX];
        int v;
    };
    Trie *root;
    void create(char *str)
    {
        int len=strlen(str);
        Trie *p=root,*q;
        for(int i=0;i<len;i++)
        {
            int id=str[i]-'0';
            if(p->next[id]==NULL)
            { 
                q=(Trie*)malloc(sizeof(Trie));
                q->v=1;
                for(int j=0;j<MAX;j++)
                    q->next[j]=NULL;
                p->next[id]=q;
                p=p->next[id]; 
            }
            else
            {
                p->next[id]->v++;
                p=p->next[id];
            } 
        }
        p->v=-1; 
    } 
    int find(char *str)
    { 
        int len=strlen(str);
        Trie *p=root; 
        for(int i=0;i<len;i++)
        {
            int id=str[i]-'0';
            p=p->next[id];
            if(p==NULL)return 0;
            if(p->v==-1)return -1; 
        }
        return -1;
    } 
    int del(Trie*T)
    {
        if(T==NULL)return 0;
        for(int i=0;i<MAX;i++)
            if(T->next[i]!=NULL)
                del(T->next[i]);
        free(T); 
        return 0;
    } 
    int main()
    {
        char str[20];
        int t,n,i;
        scanf("%d",&t);
        while(t--)
        { 
            int flag=0; 
            root=(Trie*)malloc(sizeof(Trie)); 
            for(i=0;i<MAX;i++)
                root->next[i]=NULL;
            scanf("%d",&n);
            for(i=0;i<n;i++)
            {
                scanf("%s",str);
                if(flag)continue;
                if(find(str)==-1)flag=1;
                create(str);
            } 
            if(flag)puts("NO");
            else puts("YES"); 
            del(root); 
        } 
        return 0;
    } 
  • 相关阅读:
    基本排序算法汇总
    贪心算法题目汇总
    STL中sort
    栈和队列题目汇总
    cron 计划任务 在线配置
    各种less概念通俗解释
    node 子线程 进程
    内存池
    RPC简介
    koa express 对比
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/2491093.html
Copyright © 2011-2022 走看看