蓝桥杯 算法提高 9-3摩尔斯电码 ADV-226
2017-11-14 13:40
190 查看
蓝桥杯 算法提高 9-3摩尔斯电码 ADV-226
问题描述
摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。用'* '表示' . ',中间空格用' | '表示,只转化字符表。
摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988。
提示
清橙进行评测时,输入是以EOF结尾的,而不是换行符。(EOF不是一个字符,“以EOF结尾”是一种通俗但不严谨的说法。)因此可以通过以下方式之一获取输入:
1. 一次读入整行字符串,再进行后续解析。
2. 使用getchar或scanf一次读入一个字符,通过它们的返回值判断输入结束。
输出格式
<
cf40
p style="margin-top:0px;margin-bottom:0px;padding-top:0px;padding-bottom:0px;color:rgb(85,85,85);font-size:16px;font-family:'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun;line-height:24px;">
做题过程以及易错点:
在做这道题目过程中,就一直被“String[] strings = string.split("\\|");”这条语句卡着。一开始是使用“String[]
strings = string.split("|");”语句,然后使用输出语句检验题目中用split()函数拆分的字符串,居然把输入的字符串拆分成一个一个的字符
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/wail.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/wail.gif)
,尝试了几次,也是这样,那时很崩溃喔,原来“|”是特殊符号,要使用特殊的形式解决:split("\\|");”,就是“\\”双反斜杠!!
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
总结一下其他的特殊符号的解决问题:
关于点的问题是使用string.split("[.]")。
关于竖线的问题是使用string.split("\\|")。
关于星号的问题是使用string.split("\\*")。
关于斜线的问题是使用string.split("\\\\")。
关于中括号的问题是使用string.split("\\[\\]")。
还是自己的水平还不够,做题时注意细节,这点很重要!!
代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); String string = scanner.next(); String[] strings = string.split("\\|"); for(int i=0;i<strings.length;i++) { switch (strings[i]) { case "*-": strings[i]="a"; break; case "-***": strings[i]="b"; break; case "-*-*": strings[i]="c"; break; case "-**": strings[i]="d"; break; case "*": strings[i]="e"; break; case "**-*": strings[i]="f"; break; case "--*": strings[i]="g"; break; case "****": strings[i]="h"; break; case "**": strings[i]="i"; break; case "*---": strings[i]="j"; break; case "-*-": strings[i]="k"; break; case "*-**": strings[i]="l"; break; case "--": strings[i]="m"; break; case "-*": strings[i]="n"; break; case "---": strings[i]="o"; break; case "*--*": strings[i]="p"; break; case "--*-": strings[i]="q"; break; case "*-*": strings[i]="r"; break; case "***": strings[i]="s"; break; case "-": strings[i]="t"; break; case "**-": strings[i]="u"; break; case "***-": strings[i]="v"; break; case "*--": strings[i]="w"; break; case "-**-": strings[i]="x"; break; case "-*--": strings[i]="y"; break; case "--**": strings[i]="z"; break; default: break; } System.out.print(strings[i]); } } }
相关文章推荐
- 蓝桥杯 ADV-226 算法提高 9-3摩尔斯电码
- 蓝桥杯 ADV-167算法提高 快乐司机(贪心算法)
- 蓝桥杯 ADV-170算法提高 数字黑洞
- 蓝桥杯 ADV-134算法提高 校门外的树
- 蓝桥杯 ADV-166 算法提高 聪明的美食家 java版
- 蓝桥杯 ADV-77 算法提高 统计平均成绩
- 蓝桥杯-算法提高(ADV-143 扶老奶奶过街)
- 蓝桥杯 ADV-98 算法提高 约数个数
- 蓝桥杯 ADV-81 算法提高 数的运算
- 蓝桥杯 ADV-87 算法提高 利息计算
- 蓝桥杯 ADV-89 算法提高 输出九九乘法表
- 蓝桥杯 ADV-119 算法提高 6-9删除数组中的0元素
- 蓝桥杯 ADV-210 算法提高 2-1屏幕打印
- 蓝桥杯 ADV-179 算法提高 解二元一次方程组
- 蓝桥杯ADV-88——算法提高 输出正反三角形
- 蓝桥杯 ADV-68算法提高 企业奖金发放
- 蓝桥杯 ADV-120算法提高 6-17复数四则运算
- 蓝桥杯 ADV-167算法提高 快乐司机(贪心算法)
- 蓝桥杯 ADV-144 算法提高 01背包 (java)(动态规划算法)
- 蓝桥杯 ADV-194 算法提高 盾神与积木游戏 java版