zoukankan      html  css  js  c++  java
  • Trie Tree(静态数组写法,好写)

    蒜头君作为蒜厂的工程师,在开发网站时不小心写出了一个 Bug:当用户输入密码时,如果既和自己的密码一致,也同时是另一个用户密码的 前缀 时,用户会跳转到 404 页。

    然而蒜头君坚称:我们的用户那么少,怎么可能触发这个 Bug……

    机智的你,能不能帮蒜头君确认一下这个 Bug 到底会不会触发呢?

    样例输入

    第一行输入一个整数 n(1n233333),表示蒜厂网站的用户数。接下来一共 n 行,每行一个由小写字母a-z组成的字符串,长度不超过 10,表示每个用户的密码。蒜厂的数据库容量太小,所有密码长度加起来小于466666。

    样例输出

    如果触发了 Bug 则输出一行Bug!,否则输出一行Good Luck!

    样例输入1

    3
    abc
    abcdef
    cdef

    样例输出1

    Bug!

    代码是最清晰的语言
    //没有动态写法快且占内存比动态写法多
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    int child[233363][28];  //该值代表你是第几号前缀,0表示不存在你这个前缀
    bool is_string[233363];
    int tot=0;//记录前缀的数目
    bool insert(char *str)
    {
        int p=0,len=strlen(str);
        for(int i=0;i<len;i++)
        {
            int id=str[i]-'a';
            if(!child[p][id]) child[p][id]=++tot;
            else if(i==len-1||is_string[child[p][id]]) return true;
            p=child[p][id];
            if(i==len-1)
                is_string[tot]=true;
        }
        return false;
    }
    int main()
    {
        int t,flag=0;
        cin>>t;
        memset(child,0,sizeof(child));
        memset(is_string,false,sizeof(is_string));
        while(t--)
        {
            char str[15];
            cin>>str;
            if(insert(str))
                flag=1;
        }
        printf("%s
    ",flag==1?"Bug!":"Good Luck!");
    }
    

      

  • 相关阅读:
    SharePoint Framework (SPFx) 开发入门教程
    SharePoint 2013 Designer 入门教程
    SharePoint 2013 开发教程
    SharePoint 2013 入门教程
    SharePoint Online 部署SPFx Web部件
    SharePoint Online SPFx Web部件绑定数据
    SharePoint Online 创建SPFx客户端Web部件
    SharePoint Online 配置框架(SPFx)开发环境
    SharePoint Online 创建应用程序目录
    SharePoint Online 启用 IRM
  • 原文地址:https://www.cnblogs.com/onlyli/p/7232942.html
Copyright © 2011-2022 走看看