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 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检 ...
随机推荐
- 字节码编程,Javassist篇三《使用Javassist在运行时重新加载类「替换原方法输出不一样的结果」》
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 通过前面两篇 javassist 的基本内容,大体介绍了:类池(ClassPool) ...
- java接口自动化(五) - 企业级代码管理工具Git的配置
1.简介 上一篇讲解完如何安装Git后,今天宏哥趁热打铁讲解一下Git的使用,要想使用Git,我们还需要做一些准备工作,首先你的拥有一个Git账号,所以如果你没有的话,就快速注册一个吧. 2.Git注 ...
- FPGA自计数六位共阳极数码管动态显示2(调用task的方法)
`timescale 1ns/1ps module adc_dis( clk , rst_n , sm_seg , sm_bit ); input clk;//50HZ input rst_n; :] ...
- [hdu5379 Mahjong tree]dfs计数
题意:给n个节点的树编号1-n,一个节点唯一对应一种编号,要求编完号的树满足如下性质:所有节点的儿子的编号是连续的,对一棵子树,它包含的所有节点的编号也是连续的.连续的意思是把所有数排序后是一段连续的 ...
- flink流处理从0到1
一.DataStream API之Data Sources(消费者之数据源) 介绍: source是程序的数据源输入,你可以通过StreamExecutionEnvironment.addSource ...
- 理解css属性的继承和覆盖
首先,我们梳理一下哪些属性会被继承 文本 color 颜色,a元素除外 direction 方向 font 字体 font-family 字体系列 font-style 字体风格 font-size ...
- Azure AD B2C(一)初识
一,引言(上节回顾) 上一节讲到Azure AD的一些基础概念,以及如何运用 Azure AD 包含API资源,Azure AD 是微软提供的云端的身份标识和资源访问服务,帮助员工/用户/管理员访问一 ...
- node中几个路径的梳理
大半夜睡不着... 今天用node写了返回客户端请求资源的http服务,确实发现了一些以前没注意到的问题. 第一个是在接收到请求的时候,解析完路径后,一定要判断请求的文件的后缀,以便选择对应的Cont ...
- css概述二
四.尺寸和边框 1.尺寸属性 ①作用 设置元素的宽度和高度 ②属性 width:宽度 max-width:最大宽度 min-width:最小宽度 height:高度 max-height: min-h ...
- MVC4.0接口学习
/// <summary> /// 正则验证身份证号是否合法 /// </summary> /// <param name="sIdCard"> ...