问题 1900: [蓝桥杯][算法提高VIP]摩尔斯电码
题目描述
摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。用' * '表示' . ',中间空格用' | '表示,只转化字符表。
摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988。
输入
无
输出
无
样例输入
无
样例输出
无
package 字符串;
import java.util.Scanner;
/**
* Created with IntelliJ IDEA.
* User: 76147
* Date: 2020-01-29
* Time: 21:47
* Description: 暴力法
*/
public class 摩尔斯电码 {
static String[] f = {"*-", "-***", "-*-*", "-**", "*", "**-*",
"-**", "****", "**", "*---", "-*-", "*-**", "--", "-*",
"---", "*--*", "--*-", "*-*", "***", "-", "**-", "***-",
"*--", "-**-", "-*--", "--**"};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String arr[] = sc.next().split("\\|");
String res = "";
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < f.length; j++) {
if (arr[i].equals(f[j])) {
res += (char)('a'+j);
}
}
}
System.out.println(res);
}
}
}
注意 分隔符|,需要用
\\|来转义
输出要小写
网友评论