码迷,mamicode.com
首页 > 其他好文 > 详细

Hello,World!

时间:2020-02-06 14:43:55      阅读:46      评论:0      收藏:0      [点我收藏+]

标签:for   ring   应该   als   clear   init   oid   ret   hello   

虽说第一篇博客应该是Hello,world!,但是错过第一篇,只好在这补上啦。

开启新世纪的大门:Hello,world!

#include<iostream>
#include<cstring>
#innclude<cmath>
struct Trie
{
    int ch[maxn][maxsize];
    int val[maxn];
    int sz;
    Trie()
    {
        sz=1;
        val[0]=0;
        memset(ch[0],0,sizeof ch[0]);
    }
    void clear()
    {
            sz=1;
            val[0]=0;
            memset(ch[0],0,sizeof ch[0]);
    }
    int idx(char c){return c-'a';}
    void insert(const char *s,int v=1)
    {
        int u=0,n=strlen(s);
        for (int i=0;i<n;i++)
        {
            int c=idx(s[i]);
            if (ch[u][c]==0)
            {
                memset(ch[sz],0,sizeof ch[sz]);
                val[sz]=0;
                ch[u][c]=sz++;
            }
            u=ch[u][c];
        }
        val[u]=v;
    }
    int find(const char *s)
    {
        int u=0,n=strlen(s);
        for (int i=0;i<n;i++)
        {
            int c=idx(s[i]);
            if (ch[u][c]==0) return -1;
            u=ch[u][c];
        }
        return val[u];
    }
    void del(const char *s)
    {
        int u=0,n=strlen(s);
        for (int i=0;i<n;i++)
        {
            int c=idx(s[i]);
            if (ch[u][c]==0) return ;
            u=ch[u][c];
        }
        val[u]=0;
    }
}Hello,world;
void Init()
{
    Hello.insert("Hello");
    world.insert("world");
    Trie tmp;
    tmp.insert("Hello, world!");
    tmp.del("Hello, ");
    if (tmp.find("Hello")){Hello.clear();Hello.insert("Hello");}
    if (tmp.find("world")){world.clear();world.insert("world");}
}
const char P1=',',P2=' ',P3='!';
int main()
{
    const char* HelloWorld="Hello, world!";
    bool IsFind=false;
    Init();
    for (char i=0;i<127;i++)
        for (char j=0;j<127;j++)
            for (char k=0;k<127;k++)
                for (char m=0;m<127;m++)
                    for (char n=0;n<127;n++)
                    {
                        char p[5];
                        p[0]=i,p[1]=j,p[2]=k,p[3]=m,p[4]=n;
                        char* d;
                        strcpy(d,p);
                        if (Hello.find(d)) cout<<d<<P1<<P2,IsFind=true;
                        if (world.find(d)) cout<<d<<P3,IsFind=true; 
                    }
    if (!IsFind) cout<<HelloWorld;
    return 0;
}

Hello,World!

标签:for   ring   应该   als   clear   init   oid   ret   hello   

原文地址:https://www.cnblogs.com/CDOI-24374/p/12268461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!