zoukankan      html  css  js  c++  java
  • POJ 1051

    #include <iostream>
    #include <algorithm>
    #include <string>
    #define MAXN 27
    using namespace std;
    
    struct node
    {
        int len;
        string s;
    };
    char fun(string s);
    node _node[MAXN];
    int n[100];
    
    int main()
    {
        int time = 0;
        //freopen("acm.acm","r",stdin);
        int i;
        _node[0].len = 2;
        _node[0].s = ".-";
        _node[1].len = 4;
        _node[1].s = "-...";
        _node[2].len = 4;
        _node[2].s = "-.-.";
        _node[3].len = 3;
        _node[3].s = "-..";
        _node[4].len = 1;
        _node[4].s = ".";
        _node[5].len = 4;
        _node[5].s = "..-.";
        _node[6].len = 3;
        _node[6].s = "--.";
    
        _node[7].len = 4;
        _node[7].s = "....";
        _node[8].len = 2;
        _node[8].s = "..";
        _node[9].len = 4;
        _node[9].s = ".---";
        _node[10].len = 3;
        _node[10].s = "-.-";
        _node[11].len = 4;
        _node[11].s = ".-..";
        _node[12].len = 2;
        _node[12].s = "--";
        _node[13].len = 2;
        _node[13].s = "-.";
    
        _node[14].len = 3;
        _node[14].s = "---";
        _node[15].len = 4;
        _node[15].s = ".--.";
        _node[16].len = 4;
        _node[16].s = "--.-";
        _node[17].len = 3;
        _node[17].s = ".-.";
        _node[18].len = 3;
        _node[18].s = "...";
        _node[19].len = 1;
        _node[19].s = "-";
        _node[20].len = 3;
        _node[20].s = "..-";
        _node[21].len = 4;
        _node[21].s = "...-";
        _node[22].len = 3;
        _node[22].s = ".--";
        _node[23].len = 4;
        _node[23].s = "-..-";
        _node[24].len = 4;
        _node[24].s = "-.--";
        _node[25].len = 4;
        _node[25].s = "--..";
    
        int test;
        string _s;
        string s;
    //    int i;
        cin>>test;
        while(test --)
        {
    
            cin>>s;
            _s = "";
            for(i = 0; i < s.length(); ++ i)
            {
                if(s[i] >= 'A' && s[i] <= 'Z')
                {
                    _s += _node[s[i]-'A'].s;
                    n[i] = _node[s[i]-'A'].len;
                }
                else if(s[i] == '_')
                {
                    _s += "..--";
                    n[i] = 4;
                }
                else if(s[i] ==',')
                {
                    _s += ".-.-";
                    n[i] = 4;
                }
                else if(s[i] == '.')
                {
                    _s += "---.";
                    n[i] = 4;
                }
                else if(s[i] == '?')
                {
                    _s += "----";
                    n[i] = 4;
                }
            }
            reverse(n,n+s.length());
        //    for(i = 0; i < s.length(); ++ i)
        //    {    
        //        cout<<n[i]<<" ";
        //    }
        //    cout<<s<<endl;
        //    cout<<_s<<endl;
        //    cout<<endl;
            cout<<++ time<<": ";
            int j = 0;
            for(i = 0; i < _s.length();)
            {
                string k;
                k = _s.substr(i,n[j]);
                i += n[j ++];
                //cout<<k<<endl;
                //    cout<<(char)(fun(k)+'A');
            //    cout<<k<<" ";
                cout<<fun(k);
            }
            cout<<endl;
        }
    }
    
    char fun(string s)
    {
        int i;
        if(s == "..--")
        {
            return '_';
        }
        else if(s == ".-.-")
        {
            return ',';
        }
        else if(s == "---.")
        {
            return '.';
        }
        else if(s == "----")
        {
            return '?';
        }
    
        for(i = 0; i < MAXN; ++ i)
        {
            if(_node[i].s == s)
            {
                return char('A'+i);
            }
        }
    }

    关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。 

    技术网站地址: vmfor.com

  • 相关阅读:
    【先定一个小目标】在Windows下的安装Elasticsearch
    【先定一个小目标】Windows下Redis的安装使用
    【.net core 跨平台】第一步 在Ubuntu16.04 配置.net core环境
    Caf.CMS是一个免费的、 开源,功能齐全的CMS
    使用MicroService4Net 快速创建一个简单的微服务
    记录-div绝对定位针对手机浏览器的区别
    OS X 下不通过Homebrew安装ASP.NET 5开发环境
    结合谷歌地图多边形(polygon)与Sql Server 2008的空间数据类型计算某个点是否在多边形内的注意事项
    插入排序
    修复lvm的逻辑卷
  • 原文地址:https://www.cnblogs.com/gavinsp/p/4563236.html
Copyright © 2011-2022 走看看