Hello,World!

虽说第一篇博客应该是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;
}
上一篇:最长公共子序列


下一篇:C++的auto声明、memset函数