算法提高 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. 原创Go语言题目(基础)

    题目内容来源于Go语言的经典书籍<GO编程语言> 题目 选择题 1. 下列说法错误的是:A. main包定义了一个独立可执行的二进制程序,以main函数作为程序执行的入口.B. 没有导入需 ...

  2. Linux安装tomcat并部署JavaWeb项目

    前提条件: 安装tomcat前请确认一下信息: 系统安装了JDK,且JDK版本应与javaWeb所使用的JDK一致,具体操作可参见Linux下安装JDK. 打包了javaWeb的.war 文件,具体操 ...

  3. Python哈希表和解析式

    目录 1. 封装和解构 1.1 封装 1.2 解构 2. 集合Set 2.1 初始化 2.2 增加 2.3 删除 2.4 遍历 2.5 并集&交集&差集&对称差集 3.字典 3 ...

  4. HBase 安装snappy压缩软件以及相关编码配置

    HBase 安装snappy压缩软件以及相关编码配置 前言 ​ 在使用HBase过程中因为数据存储冗余.备份数等相关问题占用过多的磁盘空间,以及在入库过程中为了增加吞吐量所以会采用相关的压缩算法来压缩 ...

  5. JMeter-结合BeanShell生成MD5加密数据写入数据库

    前言 有部分数据直接插入数据库是不可以的,需要加密处理,例如密码都指定为加密后的数据字符串.今天我们来学习一下如何利用JMeter生成加密数据并写入MySQL数据库中.如何JMeter如何连接数据库, ...

  6. 基于VUE实现的h5网页Web出库单入库单打印设计

    经过将近一个月的研发,初步实现了打印单据的自定义设计,样子还有点丑陋,但是功能基本都实现了,实现了以下功能: 1.表头表尾支持动态添加行.添加列.合并单元格(可多行多列合并). 2.表头表尾分别布局, ...

  7. 【雕爷学编程】Arduino动手做(57)---四档矩形波模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  8. Java基础之数据类型

    一.数据类型 基本数据类型介绍 byte 1字节 char 2字节 short 2字节 int 4字节 long 8字节 float 4字节 double 8字节 以上有Java中八大基本类型的7种, ...

  9. 1.3Go环境搭建之Windows

    1.1.2. Golang SDK SDK 的全称(Software Development Kit 软件开发工具包) 2) SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包 1.1.3. ...

  10. 用C++验证三门问题

    三门问题(换门): #include <iostream> #include <cstdlib> #include <ctime> #define random(a ...