zoukankan      html  css  js  c++  java
  • codevs 4189 字典

    时间限制: 1 s
     空间限制: 256000 KB
     题目等级 : 大师 Master
    题目描述 Description

    最经,skyzhong得到了一本好厉害的字典,这个字典里整整有n个单词(1<=n<=200000)

    现在skyzhong需要在字典里查询以某一段字母开头的单词

    如:skyzhong想查询a

    那么只要是a开头的单词就可以了

    skyzhong只想知道里面有没有这一个单词(因为没有他就不查了)

    若有,请输出YES。若没有,请输出NO

    输入描述 Input Description

    第一行一个数n

    第二行到第n+1行,一行一个字符串

    再下一行一个数m,表示skyzhong想要查询的次数

    接着m行,一行一个字符串,表示skyzhong想要查的东西

    输出描述 Output Description

    共m行,若有这字串输出YES,否则输出NO

    样例输入 Sample Input

    3

    asd

    asfdghj

    asfd

    3

    asd

    asdghj

    asf

    样例输出 Sample Output

    YES

    NO

    YES

    数据范围及提示 Data Size & Hint

    字符串只有小写字母,且长度≤8

    屠龙宝刀点击就送

    #include <cstring>
    #include <cstdio>
    
    struct trie_node
    {
        int count;
        bool exict;
        trie_node * next[26];
    }*root;
    trie_node * create_cn()
    {
        trie_node * tp=new trie_node;
        tp->count=0;
        memset(tp->next,0,sizeof(tp->next));
        tp->exict=0;
        return tp;
    }
    int n,m;
    void insert(char * word)
    {
        trie_node * p=root;
        char *q=word;
        while(*q)
        {
            int id=*q-'a';
            if(p->next[id]==NULL)
                p->next[id]=create_cn();
            p=p->next[id];
            ++q;
            p->count++;
        }
        p->exict=1;
    }
    bool search(char *word)
    {
        trie_node *p=root;
        char *q=word;
        while(*q)
        {
            int id=*q-'a';
            p=p->next[id];
            q++;
            if(p==NULL) return 0;
        }
        return p->count;
    }
    int main()
    {
        root=create_cn();
        scanf("%d",&n);
        char str[18];
        for(;n--;)
        {
            scanf("%s",str);
            insert(str);
        }
        scanf("%d",&m);
        for(;m--;)
        {
            scanf("%s",str);
            if(search(str)) puts("YES");
            else puts("NO");
        }
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    Codeforces Round 546 (Div. 2)
    Codeforces Round 545 (Div. 2)
    Codeforces Round 544(Div. 3)
    牛客小白月赛12
    Codeforces Round 261(Div. 2)
    Codeforces Round 260(Div. 2)
    Codeforces Round 259(Div. 2)
    Codeforces Round 258(Div. 2)
    Codeforces Round 257 (Div. 2)
    《A First Course in Probability》-chaper5-连续型随机变量-随机变量函数的分布
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6754022.html
Copyright © 2011-2022 走看看