• poj1051


    模拟

    View Code
    //zoj1068
    #include <iostream>
    #include <string>
    using namespace std;
    
    const    int        maxn=102;
    
    int        N,number[maxn],transnum[26]={2,4,4,3,1,4,3,4,2,4,3,4,2,2,3,4,4,3,3,1,3,4,3,4,4,4};
    string    st,code,translate[26]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
    
    void init()
    {
        number[0]=0;
        code="";
    }
    
    string encoder(string st,int *num)
    {
        string    ans="";
        int        len=st.length();
        
        for (int i=0;i<len;i++)
        {
            num[0]++;
            if (st[i]>='A'&&st[i]<='Z')
            {
                ans+=translate[st[i]-65];
                num[num[0]]=transnum[st[i]-65];
                continue;
            }
            switch (st[i])
            {
                case '_'    :ans+="..--"; break;
                case '?'    :ans+="----"; break;
                case ','    :ans+=".-.-"; break;
                case '.'    :ans+="---."; break;
            }
            num[num[0]]=4;
        }
        return ans;
    }
    
    void decoder(string code,int *num)
    {
        string    cut;
    
        for (int i=num[0];i>=1;i--)
        {
            cut.erase();
            cut.insert(0,code,0,num[i]);
            code.erase(0,num[i]);
            for (int j=0;j<26;j++)
                if (translate[j]==cut)
                    cout<<char(j+65);
            if (cut=="..--")
                cout<<"_";
            if (cut=="----")
                cout<<"?";
            if (cut==".-.-")
                cout<<",";
            if (cut=="---.")
                cout<<".";
        }
    }
    
    int main()
    {
    //    freopen("t.txt","r",stdin);
        cin>>N;
        getchar();
        for (int i=1;i<=N;i++)
        {
            init();
            getline(cin,st);
            code=encoder(st,number);
            printf("%d: ",i);
            decoder(code,number);
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    JSP
    Map集合的四种遍历
    过滤器和监听器
    Web常用对象(2)
    Web常用对象(1)
    Java Web了解和Servlet初次见面
    面向对象之继承(1)
    SpringBoot使用简单缓存
    SpringBoot整合mybatis
    Spring Security 入门学习--数据库认证和授权
  • 原文地址:https://www.cnblogs.com/rainydays/p/2824618.html
Copyright © 2020-2023  润新知