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

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #define maxn 300100
    #define maxx 1010
    using namespace std;
    char s[maxx];
    struct node
    {
        int next[30];
        bool w;
    }tree[maxn];
    int tot;
    void add()
    {
        int l=strlen(s),i,j,k;
        int now=0;
        for(i=0;i<l;i++)
        {
            int x=s[i]-'a'+1;
            if(tree[now].next[x])
            now=tree[now].next[x];
            else
            {
                ++tot;
                tree[now].next[x]=tot;
                now=tot;
            }
        }
        tree[now].w=1;
    }
    int find()
    {
        int l=strlen(s),i,j,k;
        i=0;
        int now=0;
        while(i<l)
        {
            int x=s[i]-'a'+1;
            if(tree[now].next[x])
            {
                i++;
                now=tree[now].next[x];
                continue;
            }
            else
            return 0;
        }
        return 1;
    }
    int main()
    {
        int n,m,i,j,k;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            scanf("%s",s);
            add();
        }
        scanf("%d",&m);
        for(i=1;i<=m;i++)
        {
            scanf("%s",s);
            if(find())
            printf("YES
    ");
            else
            printf("NO
    ");
        }
        return 0;
    }
  • 相关阅读:
    第八周作业
    第八周上机练习
    第七周作业
    第七次上机练习
    第六周作业
    4.9上机作业
    第五周作业
    第四次JAVA作业
    第四周作业
    第十六次作业
  • 原文地址:https://www.cnblogs.com/dingmenghao/p/5469728.html
Copyright © 2011-2022 走看看