`
SIHAIloveYAN
  • 浏览: 124890 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

蓝桥杯-9-3摩尔斯电码(java)

 
阅读更多
                 算法提高 9-3摩尔斯电码  
            时间限制:1.0s   内存限制:256.0MB

            问题描述
              摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。用' * '表示' . ',中间空格用' | '表示,只转化字符表。

              摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988。

            提示
              清橙进行评测时,输入是以EOF结尾的,而不是换行符。(EOF不是一个字符,“以EOF结尾”是一种通俗但不严谨的说法。)因此可以通过以下方式之一获取输入:

              1. 一次读入整行字符串,再进行后续解析。

              2. 使用getchar或scanf一次读入一个字符,通过它们的返回值判断输入结束。
            样例输出
    import java.util.Scanner;  

    public class Main {  
        public char Getchar(String A){  //这里if多了,想的话自己改改
            char result = 0;  

             if(A.equals("*-"))  
                 result = 'a';  
         else if(A.equals("-***"))  
             result = 'b';  
         else if(A.equals("-*-*"))  
             result = 'c';  
         else if(A.equals("-**"))  
             result = 'd';  
         else if(A.equals("*"))  
             result = 'e';  
         else if(A.equals("**-*"))  
             result = 'f';  
         else if(A.equals("--*"))  
             result = 'g';  
         else if(A.equals("****"))  
             result = 'h';  
         else if(A.equals("**"))  
             result = 'i';  
         else if(A.equals("*---"))  
             result = 'j';  
         else if(A.equals("-*-"))  
             result = 'k';  
         else if(A.equals("*-**"))  
             result = 'l';  
         else if(A.equals("--"))  
             result = 'm';  
         else if(A.equals("-*"))  
             result = 'n';  
         else if(A.equals("---"))  
             result = 'o';  
         else if(A.equals("*--*"))  
             result = 'p';  
         else if(A.equals("--*-"))  
             result = 'q';  
         else if(A.equals("*-*"))  
             result = 'r';  
         else if(A.equals("***"))  
             result = 's';  
         else if(A.equals("-"))  
             result = 't';  
         else if(A.equals("**-"))  
             result = 'u';  
         else if(A.equals("***-"))  
             result = 'v';  
         else if(A.equals("*--"))  
             result = 'w';  
         else if(A.equals("-**-"))  
             result = 'x';  
         else if(A.equals("-*--"))  
             result = 'y';  
         else if(A.equals("--**"))  
             result = 'z';  
            return result;  
        }  

        public void Getsentence(String ch){  
            String str1;  
            StringBuilder[] str = new StringBuilder[1000];  
            int j=0,count = 0;  
            str[j] = new StringBuilder();         
            for(int i=0;i<ch.length();i++){  
                if(ch.charAt(i)=='|'){  
                    j++;  
                    str[j] = new StringBuilder();    //看懂这个就可以
                    count=j;  

                }  
                else{  

                    String str2 = String.valueOf(ch.charAt(i));  //将char转换为string类  
                    str[j].append(str2);  
                }  

            }  
            for(int k=0;k<=count;k++){  
                str1 = str[k].toString();   //将Stringbuilder类转换为string类  
                char temp = Getchar(str1);  
                System.out.print(temp);  
            }  


        }  

        public static void main(String[] args) {  
            Main test = new Main();  
            Scanner sc = new Scanner(System.in);  
            String ch = sc.nextLine();  
            test.Getsentence(ch);  

        }  

    }  
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    摩尔斯电码,实现将字符转为摩尔斯电码的主体功能,能将摩尔斯电码通过串口上位机进行显示

    实现将字符转为摩尔斯电码的主体功能,能将摩尔斯电码通过串口上位机进行显示。部分字符转码为摩尔斯电码功能需要完善,将摩尔斯电码滴答发送功能需要完善 2. 使用说明: 通过修改宏定义可以修改开关时间; 通过...

    摩尔斯电码PC练习软件

    摩尔斯电码(Morse Code)是一种早期的通信方式,主要应用于无线电信号传输,尤其在业余无线电领域中被广泛使用。它通过长短不同的信号来代表不同的字母、数字和标点符号,使得人们可以在没有声音或者图像的情况下...

    摩尔斯电码,实现将摩尔斯电码通过串口进行打印,通过蜂鸣器进行发送,具体详情见博客

    内含摩尔斯电码与字符的对照表 具体详细见博客:https://blog.csdn.net/book_drabit/article/details/125666502 作为代码块,方便后续使用。 2. 使用说明: 通过修改宏定义可以修改开关时间; 通过查看头文件可以...

    MorseCode摩尔斯电码库arduino

    3. 调用摩尔斯电码函数:在`loop()`函数中,使用库提供的函数发送摩尔斯电码。比如,`sendMorseCode()`函数可以接受一个字符串参数,并按照摩尔斯电码规则闪烁LED灯。 ```cpp void loop() { sendMorseCode("SOS"); ...

    python转换字符串为摩尔斯电码的方法

    本文实例讲述了python转换字符串为摩尔斯电码的方法。分享给大家供大家参考。具体实现方法如下: chars = ",.0123456789?abcdefghijklmnopqrstuvwxyz" codes = """--..-- .-.-.- ----- .---- ..--- ...-- ....- ......

    一个基于ESP32使用ESP-IDF开发的摩尔斯电码练习器

    这个项目利用ESP-IDF构建了一个摩尔斯电码练习器,为无线电爱好者(HAM)提供了学习和实践摩尔斯电码的工具。 首先,我们来看看摩尔斯电码。摩尔斯电码是一种早期的通信方式,由短信号(点)和长信号(划)组成,...

    摩尔斯电码模拟器-MV开源

    摩尔斯电码模拟器是一款基于MV Studio开源设计工作室开发的软件工具,专为学习和实践摩尔斯电码的用户设计。这款模拟器提供了自动和手动两种模式,方便用户在理解和运用摩尔斯电码的过程中进行练习和创作。同时,它...

    angular-morse-code:摩尔斯电码加密解密

    Angular 摩尔斯电码库是一个用于加密和解密文本的工具,它使用了经典的摩尔斯电码系统。这个库是专门为开发人员设计的,可以方便地集成到基于 Angular 的 Web 应用程序中,为用户提供一个独特的通信或数据编码方式。...

    一款摩尔斯电码发报练习软件Lakey

    3、摩尔斯电码解析,可以用做发报练习参考; 4、音频频谱分析,可以对电脑音频模拟输入(Line in、Aux in或Mic in等)进行音频分析并显示; 5、发报键状态可以输出到计算机I/O接口,对外围设备进行简单控制; 6、...

    MSP430摩尔斯电码发生器.zip

    3. **用户界面**:为了便于用户输入和查看摩尔斯电码,我们可以设计简单的串行通信接口,如UART(通用异步收发传输器)。通过串口,用户可以输入要发送的信息,单片机将其转换为摩尔斯电码并输出。同时,也可以接收...

    摩尔斯电码练习软件

    摩尔斯电码(又译为摩斯电码)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母、数字和标点符号等。它由美国人艾尔菲德·维尔发明,当时他正在协助Samuel Morse进行摩尔斯电报机的...

    单片机发射摩尔斯电码

    '电报最早是由美国的摩尔斯在1844年发明的,故也被叫做摩尔斯电码。它由两种基本信号和不同的间隔时间组成:短促的点信号" .",读" 的 "(Di);保持一定时间的长信号"—",读"答 "(Da)。间隔时间:滴,1t;答,3t...

    m---rse:摩尔斯电码机模拟器

    m--rse 该应用程序的构建主要是因为将莫尔斯电码转换为文本很有趣,反之亦然。 此应用程序包括通过邮件或其他媒介使用点和破折号在文本文件中发送消息。 可以添加的增强功能是通过音频输出莫尔斯电码。 通过麦克风...

    MorseCode-BinaryTree:为摩尔斯电码创建二进制树,然后将摩尔斯电码转换为字母

    摩尔斯电码是一种古老的编码方式,由一系列长短不同的信号(通常用点和线表示)组成,用于代表字母、数字和标点符号。这个项目" MorseCode-BinaryTree "聚焦于使用二进制树结构来实现摩尔斯电码的编码和解码过程,...

    摩尔斯电码模拟器2.8.0

    摩尔斯电码模拟器,自动模拟发报,手动发报,导出电文。完全开源,内附源码。MV STUDIO 开源设计工作室

    Cwtype 摩尔斯电码学习软件,发报软件,汉化版本

    摩尔斯电码(Morse Code)是一种早期的通信编码方式,由美国人塞缪尔·摩尔斯在19世纪发明,主要用于电报传输。它通过长短不同的信号,即点(.)和划(-),来代表不同的字母、数字和标点符号。在无线通信和航海航空...

    php摩尔斯电码加密---解密

    内容包含摩尔斯电码--一个解密一个加密函数,和一个解密函数,适用于有一些指定需求的人,如有问题请私信我。 摩尔斯电码也被称作摩斯密码,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、...

    Morse code decoder:摩尔斯电码解码器。-开源

    3. **编码识别**:根据摩尔斯电码的规则表,将嘀嗒序列转化为对应的字母或数字。 4. **文本输出**:解码后的摩尔斯电码被转换成可读的文本格式,并显示在图形界面上。 使用这个开源项目,开发者和用户可以: - 学习...

    什么是摩尔斯电码和收发技术原理

    摩尔斯电码,作为一种承载了浓厚历史色彩的通信技术,曾是信息传递的重要手段,在今天的信息时代依旧扮演着特殊的角色。本文将深入探讨摩尔斯电码的原理、应用,以及在现代社会中的地位,对这一古老而又充满活力的...

    摩尔斯lakey.zip

    《摩尔斯电码技术详解与应用》 摩尔斯电码,一种古老的通信方式,由美国人萨缪尔·摩尔斯在19世纪发明,是通过长短不同的声音、光线或电脉冲来表示字母、数字和标点符号的编码系统。在这个名为“摩尔斯lakey.zip”...

Global site tag (gtag.js) - Google Analytics