算法提高 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.ArrayList;
import java.util.Scanner; public class 摩尔斯电码 {
public static char getOneChar(String A) {
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 static String getOneString(char[] A, int start, int end) {
StringBuilder result = new StringBuilder("");
for(int i = start;i <= end;i++)
result.append(A[i]);
return result.toString();
} public static void printResult(String A) {
int len = A.length();
if(len < 1)
return;
char[] arrayA = A.toCharArray();
ArrayList<Character> list = new ArrayList<Character>();
for(int i = 0;i < len;i++) {
int start = i;
int end = i;
for(;end < len;end++) {
if(arrayA[end] == '|')
break;
}
String tempA = getOneString(arrayA, start, end - 1);
list.add(getOneChar(tempA));
i = end;
}
//输出最终结果
for(int i = 0;i < list.size();i++)
System.out.print(list.get(i));
} public static void main(String[] args) { Scanner in = new Scanner(System.in);
String A = in.nextLine();
printResult(A);
} }

Java实现 蓝桥杯 算法提高 摩尔斯电码的更多相关文章

  1. 算法笔记_085:蓝桥杯练习 9-3摩尔斯电码(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 摩尔斯电码破译.类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文.请不要使用"zylib.h",只能使用 ...

  2. Java实现 蓝桥杯 算法提高 进攻策略加强(暴力)

    试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要 ...

  3. Java实现 蓝桥杯 算法提高 小X的购物计划

    试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...

  4. Java实现 蓝桥杯 算法提高 奥运会开幕式

    试题 算法提高 奥运会开幕式 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长 ...

  5. Java实现 蓝桥杯 算法提高 天天向上(DP)

    试题 算法提高 天天向上 问题描述 A同学的学习成绩十分不稳定,于是老师对他说:"只要你连续4天成绩有进步,那我就奖励给你一朵小红花."可是这对于A同学太困难了.于是,老师对他放宽 ...

  6. Java实现 蓝桥杯 算法提高 欧拉函数(数学)

    试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰ ...

  7. Java实现 蓝桥杯 算法提高 计算超阶乘(暴力)

    试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输 ...

  8. Java实现蓝桥杯 算法提高 线段和点

    算法提高 线段和点 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a>=b且a<=c,称点a满 ...

  9. Java实现蓝桥杯-算法提高 P1003

    算法提高 P1003 时间限制:1.0s 内存限制:256.0MB 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检 ...

随机推荐

  1. 字节码编程,Javassist篇三《使用Javassist在运行时重新加载类「替换原方法输出不一样的结果」》

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 通过前面两篇 javassist 的基本内容,大体介绍了:类池(ClassPool) ...

  2. java接口自动化(五) - 企业级代码管理工具Git的配置

    1.简介 上一篇讲解完如何安装Git后,今天宏哥趁热打铁讲解一下Git的使用,要想使用Git,我们还需要做一些准备工作,首先你的拥有一个Git账号,所以如果你没有的话,就快速注册一个吧. 2.Git注 ...

  3. FPGA自计数六位共阳极数码管动态显示2(调用task的方法)

    `timescale 1ns/1ps module adc_dis( clk , rst_n , sm_seg , sm_bit ); input clk;//50HZ input rst_n; :] ...

  4. [hdu5379 Mahjong tree]dfs计数

    题意:给n个节点的树编号1-n,一个节点唯一对应一种编号,要求编完号的树满足如下性质:所有节点的儿子的编号是连续的,对一棵子树,它包含的所有节点的编号也是连续的.连续的意思是把所有数排序后是一段连续的 ...

  5. flink流处理从0到1

    一.DataStream API之Data Sources(消费者之数据源) 介绍: source是程序的数据源输入,你可以通过StreamExecutionEnvironment.addSource ...

  6. 理解css属性的继承和覆盖

    首先,我们梳理一下哪些属性会被继承 文本 color 颜色,a元素除外 direction 方向 font 字体 font-family 字体系列 font-style 字体风格 font-size ...

  7. Azure AD B2C(一)初识

    一,引言(上节回顾) 上一节讲到Azure AD的一些基础概念,以及如何运用 Azure AD 包含API资源,Azure AD 是微软提供的云端的身份标识和资源访问服务,帮助员工/用户/管理员访问一 ...

  8. node中几个路径的梳理

    大半夜睡不着... 今天用node写了返回客户端请求资源的http服务,确实发现了一些以前没注意到的问题. 第一个是在接收到请求的时候,解析完路径后,一定要判断请求的文件的后缀,以便选择对应的Cont ...

  9. css概述二

    四.尺寸和边框 1.尺寸属性 ①作用 设置元素的宽度和高度 ②属性 width:宽度 max-width:最大宽度 min-width:最小宽度 height:高度 max-height: min-h ...

  10. MVC4.0接口学习

    /// <summary> /// 正则验证身份证号是否合法 /// </summary> /// <param name="sIdCard"> ...