题目

摩尔斯电码(Morse code)是美国人艾尔菲德 . 维尔于 1837 年发明的一种时通时断的信号代码。摩尔斯电码由两种基本信号和不同的间隔时间组成。

两种基本信号为:短促的点信号.,读(Di);保持一定时间的长信号-,读(Da),这两种基本信号通过不同的排列顺序表示不同的英文字母、数字和标点符号。例如:国际通用求救信号SOS,它的莫尔斯电码为...---...(三点,三长,三点,即:滴滴滴,嗒嗒嗒,滴滴滴)。

下面两张表为英文字母和数字的标准莫尔斯电码对照表。

在摩尔斯电码中,字母 M; 表示为--(电报中为嗒嗒),字母 E; 表示为.(电报中为),字母 G; 表示为--.(电报中为嗒嗒滴),因此如果连续发送--.嗒嗒滴),收报方会误以为是字母 G; 而不是ME

那么,为了表示ME,需要在两个字母之间加入间隔,例如,--/.嗒嗒 / 滴),/可以用时间上的停顿来表示。

因此,摩尔斯电码除了信号和信号,还有不同的间隔时间,根据间隔时间长短,可细分为 : 字符间短的间隔时间、单词之间中等长的间隔时间以及句子之间比较长的间隔时间 。

请编写一个程序,模拟莫尔斯电码的翻译,输入一串莫尔斯电码,输出其对应的明文信息。

假设在莫尔斯电码中,点信号用字符 .;(小数点)表示,长信号用字符 -;(减号)表示, 字符间短的间隔时间用一个字符 /; 表示,单词之间中等长的间隔时间用三个字符 /; 表示,句子之间比较长的间隔时间用五个字符 /; 表示。

例如:

莫尔斯电码:

-/..../../...///../...///--/---/.-./..././//-.-./---/-.././-.../-.--/.

翻译出来的明文信息为:THIS IS MORSE CODE.BYE

说明:在输出时,单词之间用一个空格符分隔,句子之间用字符 . 分隔。所有字符均为大写字母。

输入格式

第 1 行:一个整数 T(1≤T≤10)为问题数。

接下来 T 行,每行输入一串莫尔斯电码,电码长度不超过 1000 个字符,电码由.-/三种字符构成。

/表示输入的空格。

输出格式

对于每个问题,输出一行问题的编号(0 开始编号,格式:case #0: 等)。然后对应每个问题在一行中输出莫尔斯电码表示的明文信息。

说明:在输出时,单词之间用一个空格符分隔,句子之间用字符. 分隔。英文字母均为大写字母。

样例

input

3
.../---/...
-/..../../...///../...///--/---/.-./..././//-.-./---/-.././-.../-.--/.
-./---///.----/..---/-----

output

case #0:
SOS
case #1:
THIS IS MORSE CODE.BYE
case #2:
NO 120

答案(过于无聊)

void solve()
{   char *moose[36]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..","-----",".----","..---","...--","....-",".....","-....","--...","---..","----."};char str[1001],code[6],text[501];int i=0,j,k;  char ch;  int flag,n=0;gets(str);while(str[i]){   j=0;while(str[i]=='.'||str[i]=='-') code[j++]=str[i++];     code[j]='\0';for(k=0; k<36; k++)if(strcmp(code,moose[k])==0){   if(k<26) ch=k+65;  else ch=k+22;text[n++]=ch;  break; }if(k>=36) {printf("Data Error!\n");return;}flag=0;while(str[i]=='/') {flag++;i++;}if(flag==3) text[n++]=' ';  else if(flag==5) text[n++]='.';}text[n]='\0';  printf("%s\n",text);
}

「EOJ」3061 摩尔斯电码相关推荐

  1. arduino串口监视器显示nan_使用Arduino开发板制作摩尔斯电码生成器

    摩尔斯电码是一种通信系统,用于在两个不同持续时间的信号中编码任何字符,称为点和虚线.摩尔斯电码由Samuel F.B开发.并进一步用于电报传输秘密信息.它在第二次世界大战时最常用.摩尔斯电码可以通过点 ...

  2. python 转成摩尔斯电码_一篇文章教会你摩尔斯码

    正规的摩尔斯码 对照表是这样: 其实记住主要的26个字母就够日常用了,而记26个字母有一张更简单的图: 把点和横线以字母的形态呈示出来,基本上看一遍就能记住大半了.不过要注意每个字母下方的一行小字,那 ...

  3. 蓝桥杯-9-3摩尔斯电码(java)

    算法提高 9-3摩尔斯电码 时间限制:1.0s 内存限制:256.0MB问题描述摩尔斯电码破译.类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文.请不要使用"zylib.h&q ...

  4. C++morse code 摩尔斯电码算法(附完整源码)

    morse code 摩尔斯电码的算法 morse code 摩尔斯电码的算法的完整源码(定义,实现,main函数测试) morse code 摩尔斯电码的算法的完整源码(定义,实现,main函数测试 ...

  5. 摩尔斯电码转换python编码_Morse Code 用Python做个摩斯密码转换器

    摩斯密码摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母.数字和标点符号,不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种 ...

  6. android---手电筒之摩尔斯电码

    摩尔斯电码通过控制闪光灯的开关的持续时间,来发送点和横,这次写代码的过程中,学习到了分解的好处,把每一步细分,带来的是开发效率的提升,如下面代码. public static void sleep(i ...

  7. 【愚公系列】2022年04月 编码解码-摩尔斯电码和栅栏密码

    文章目录 一.摩尔斯电码和栅栏密码的介绍 1.摩尔斯电码 1.1 摩尔斯电码的概念 1.2 摩尔斯电码的应用: 2.栅栏密码 2.1 栅栏密码的概念 2.2 栅栏密码的应用 2.3 栅栏密码的脚本 3 ...

  8. Escape/Unescape,HTML实体编码,敲击码(Tap code),摩尔斯电码(Morse Code)

    1.Escape/Unescape 加密解码/编码解码,又叫%u编码,采用UTF-16BE模式, Escape编码/加密,就是字符对应UTF-16 16进制表示方式前面加%u.Unescape解码/解 ...

  9. arduino nano 蓝牙_基于Arduino的摩尔斯电码练习及无线收发报训练器

    摘要:本文介绍一款基于Arduino NANO开发的,带2.4G无线收发报功能的摩尔斯电码训练器的系统设计思路.发射端通过NANO板的外部中断引脚采集电键输入的脉冲PPM序列同时驱动喇叭播放电键音,然 ...

最新文章

  1. NumPy简明教程(二、数组2)
  2. Android—打包aar以及module依赖操作
  3. python中文乱码 def decode-python处理一些乱码的中文文本时decode('utf-8')报错的处理...
  4. 奥的斯服务器状态显示,奥的斯电梯调试服务器(俗称st)按键介绍
  5. (四)十大经典排序算法(动画图解,代码完全)
  6. Linux服务器非root用户下安装CUDA11.1和cudnn到指定目录
  7. 想创业赚钱 就必须了解赚钱的真相
  8. lr 远程压力机部署安装
  9. NFS挂载及写入故障
  10. udacity 的如何使用git课程终于找出merge master和coins时候的问题了
  11. MarkDown下载和安装图文教程
  12. jQuery和纯js实现addClass、removeClass方法
  13. 函数重载与参数缺省值共用可能引起两意性
  14. 最新版微信 C# 微信HOOK 源代码,微信版本 3.0.0.57
  15. 诚之和:3个月亏17亿,贝壳释放了什么信号?
  16. Linux系统-gzip命令 – 压缩和解压文件
  17. Dota2 世界冠军被 AI 吊打,全程只推了两座塔
  18. mili u盘 android手机,mili otg数据线如何使用?
  19. 一文读懂伪回归、协整、格兰杰
  20. SOLID 设计原则 (有点长但很透彻)

热门文章

  1. SpringBoot配置Cors解决跨域请求问题
  2. 小学三年级计算机基础知识教案,小学三年级上册信息技术教案
  3. 计算机网络——基本概念和基础知识
  4. document.body详解
  5. 为华为路由器创建用户名密码及接口登录详细配置
  6. 如何将文字转化为语音?三个方法帮你轻松实现!
  7. 通过Point类和Triangel类实现三角形面积的计算
  8. vs配置freeglut+glew
  9. 华为产品测评官-开发者之声 - 华为云CodeArts真实体验感想
  10. C++判断一个链表是否为回文结构