专栏首页AI那点小事算法提高 9-3摩尔斯电码

算法提高 9-3摩尔斯电码

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

  摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988。 提示   清橙进行评测时,输入是以EOF结尾的,而不是换行符。(EOF不是一个字符,“以EOF结尾”是一种通俗但不严谨的说法。)因此可以通过以下方式之一获取输入:

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

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

关于split方法的博客链接为:

import java.util.HashMap;
import java.util.Scanner;

public class Main {
    static String[] mode = {"*-","-***","-*-*","-**","*","**-*","--*","****","**","*---","-*-","*-**","--","-*","---","*--*","--*-","*-*","**","-","**-","***-","*--","-**-","-*--","--**"};

    /*
     * Java中的split方法对于"|"的分割要进行转义,必须用"\\|"代替"|"
     */

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        HashMap<String, String>map = new HashMap<String, String>();
        StringBuffer translation = new StringBuffer();
        char[] word = {'a'};
        for ( int i = 0 ; i < 26 ; i++){
            map.put(mode[i], new String(word));
            word[0] = (char) (word[0] + 1);
        }
        String sentence = in.next();
        String[] split = sentence.split("\\|");
        for ( int i = 0 ; i < split.length ; i++){
            String string = map.get(split[i]);
            translation.append(string);
        }
        System.out.println(translation.toString());
        in.close();
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 算法提高 9-2 文本加密

    问题描述   先编写函数EncryptChar,按照下述规则将给定的字符c转化(加密)为新的字符:”A”转化”B”,”B”转化为”C”,… …”Z”转化为”...

    AI那点小事
  • 算法提高 概率计算

    问题描述   生成n个∈[a,b]的随机整数,输出它们的和为x的概率。 输入格式   一行输入四个整数依次为n,a,b,x,用空格分隔。 输出格...

    AI那点小事
  • 字符串分类

    牛牛有N个字符串,他想将这些字符串分类,他认为两个字符串A和B属于同一类需要满足以下条件: A中交换任意位置的两个字符,最终可以得到B,交换的次数不限。比如...

    AI那点小事
  • 高并发之并发容器,了解多少(从入门到超神)

    在上面已经提到过ConcurrentHashMap,ConcurrentHashMap相比Hashtable能够进一步提高并发性,其原理图如下:

    好好学java
  • 调用腾讯优图开放平台进行人脸识别-Java调用API实现

    保存SIGN 或者每次都生成一个也可以 方便测试就直接每次生成一个了

    小帅丶
  • 调用腾讯优图开放平台进行人脸识别-Java调用API实现

    ? 第一步:鉴权服务技术方案 Java代码实现如下 import java.util.Date; import com.baidu.aip.util...

    小帅丶
  • Java开发小技巧

    平时开发中有一些小技巧,都不算很有技术含量,但在工作中运用这些技巧确实可以提高工作效率,这里把这些小技分享出来。

    jeremyxu
  • 如何测试这个方法--性能篇

    首先来看第一个方法,第一眼看过去,发现一个问题:该类是一个工具类,方法都是静态的。在第一个方法中,SimpleDateFormat对象每次调用的时候都会创建,而...

    八音弦
  • 重学 Java 设计模式:实战模版模式「模拟爬虫各类电商商品,生成营销推广海报场景」

    有人举过这样一个例子,先给你张北大的录取通知书,但要求你每天5点起床,12点睡觉?,刻苦学习,勤奋上进。只要你坚持三年,这张通知书就有效。如果是你,你能坚持吗?...

    小傅哥
  • [javaSE] 网络编程(URLConnection)

    调用URL对象的openConnection()方法,获取URLConnection对象

    陶士涵

扫码关注云+社区

领取腾讯云代金券