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.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实现 蓝桥杯 算法提高 摩尔斯电码的更多相关文章
- 算法笔记_085:蓝桥杯练习 9-3摩尔斯电码(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 摩尔斯电码破译.类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文.请不要使用"zylib.h",只能使用 ...
- Java实现 蓝桥杯 算法提高 进攻策略加强(暴力)
试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要 ...
- Java实现 蓝桥杯 算法提高 小X的购物计划
试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...
- Java实现 蓝桥杯 算法提高 奥运会开幕式
试题 算法提高 奥运会开幕式 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 学校给高一(三)班分配了一个名额,去参加奥运会的开幕式.每个人都争着要去,可是名额只有一个,怎么办?班长 ...
- Java实现 蓝桥杯 算法提高 天天向上(DP)
试题 算法提高 天天向上 问题描述 A同学的学习成绩十分不稳定,于是老师对他说:"只要你连续4天成绩有进步,那我就奖励给你一朵小红花."可是这对于A同学太困难了.于是,老师对他放宽 ...
- Java实现 蓝桥杯 算法提高 欧拉函数(数学)
试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰ ...
- Java实现 蓝桥杯 算法提高 计算超阶乘(暴力)
试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输 ...
- Java实现蓝桥杯 算法提高 线段和点
算法提高 线段和点 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a>=b且a<=c,称点a满 ...
- Java实现蓝桥杯-算法提高 P1003
算法提高 P1003 时间限制:1.0s 内存限制:256.0MB 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检 ...
随机推荐
- python之导入模块的方法
一.导入标准库模块 1.第一种方式: 可以通过以下方法导入 import time 当使用时间模块的sleep方法时可以使用 time.sleep(2) 2.第二种方式: 当只想使用sleep函数时, ...
- MySQL索引知识介绍
前言: 索引是MySQL数据库中的重要对象之一,索引的目的在于提高查询效率.可以类比字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可.索引是表的目录,在查找内容之前可以先 ...
- 08JAVA基础关键字(final、static)以及抽象类和接口
一.关键字 1.final 修饰类 修饰变量 修饰成员方法 该类为最终类,不能被继承 该变量为常量 该成员方法不能被重写 2.static (1).生命周期 随着类的加载而加载 (2).特点 被本类所 ...
- 初识JAVA(学习记录)
Java 1.1Java简介 Java是一种跨平台的,面向对象的程序设计语言.无论是电脑还是手机,到处都运行着JAVA开发的应用程序:JAVA程序可以在任何计算机.操作系统以及支持JAVA的硬件设备上 ...
- 【雕爷学编程】零基础Python(01)---“投机取巧”的三条途径
从3月13日报名尝试上网课学习(4天课8.9元),开始接触Python(中文发音“派森”),到今天有一星期了.这两天广泛搜索了一下相关的学习途径,本着“投机取巧”的出发点,居然小有心得,这里一并分享出 ...
- ArrrayList底层代码的实现
定义变量 首先要想实现该块代码,必须定义三个私有变量. private Object[] elementData;该变量用来存储容器中元素的个数. private int size:该变量表示当前容器 ...
- RenderBox使用说明书&原理浅析
本文基于1.12.13+hotfix.8版本源码分析. 0.目录 一.RenderBox的用法 1.RenderBox的使用基本流程 2.RenderObjectWidget 3.非容器控件的hitT ...
- 百度编辑器ueditor异步载入的操作方法
http://www.dookay.com/zh-cn/n/928 百度编辑器ueditor异步载入的操作方法 Time:2014-09-30 | View:830 | Source:佚名 返回列表 ...
- 博客管理与文章发布系统-第三方模块及其用法Part1
写个帖子记录一下自己写的第一个express完整项目. 所需第三方模块及其用法. 一.先把所需文件和准备工作写一下 写项目前的准备 1.创建所需文件夹 public 静态资源 model 数据库操作 ...
- Python小技巧:如何批量更新已安装的库?
众所周知,升级某个库(假设为 xxx),可以用pip install --upgrade xxx 命令,或者简写成pip install -U xxx . 如果有多个库,可以依次写在 xxx 后面,以 ...