zoukankan      html  css  js  c++  java
  • Hat’s Words hdu-1247

    就是查找这个单词能不能有两个单词组成,简单的字典树题目
    //////////////////////////////////////////////////////////////
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;

    #define maxn 26

    struct node
    {
        int sum;
        node *next[26];
    };

    node *root;
    char a[50005][30];

    void Insert(char *s);//建立字典树
    bool Find(char *s);
    bool Query(char *s);

    int main()
    {
        int i, n=0;

        root = new node();

        for(i=0; scanf("%s", a[i]) != EOF; i++)
            Insert(a[i]);
       
        for(n=1, i=0; i<=n; i++)
        {
            if(Query(a[i]))
                printf("%s ", a[i]);
        }

        return 0;
    }

    void Insert(char *s)
    {
        node *p = root;

        for(int i=0; s[i]; i++)
        {
            int k = s[i] - 'a';

            if(!p->next[k])
                p->next[k] = new node();
            p = p->next[k];
        }

        p->sum = 1;
    }
    bool Find(char *s)
    {
        node *p = root;

        for(int i=0; s[i]; i++)
        {
            int k = s[i] - 'a';

            if(!p->next[k])
                return false;
            p = p->next[k];
        }

        if(p->sum)return true;
        return false;
    }
    bool Query(char *s)
    {
        node *p = root;

        for(int i=0; s[i]; i++)
        {
            int k = s[i] - 'a';

            p = p->next[k];

            if(p->sum && Find(s+i+1))
                return true;
        }

        return false;

    } 

  • 相关阅读:
    python模拟shell
    10.LIKE 操作符
    9.TOP 子句--mysql limit
    8.INSERT INTO 语句 UPDATE 语句
    7.ORDER BY 子句
    6.AND & OR 运算符
    5.WHERE 子句
    4.SELECT DISTINCT 语句
    3.SELECT 语句
    2.sql分类
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4674319.html
Copyright © 2011-2022 走看看