Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:256 MB
Statistics

题目描述

早期的电报机只能表达两种状态:电路导通和电路断开。电路导通时喇叭可以发声;断开时则不发声。如何⽤这样的机器来传递⼈类能理解的信号呢?聪明的你⼀定想到了——时间的长短可以表达不同的含义(例如长代表 1、短代表 0),然后再把 “01” 的⼆进制序列对应到字符就可以啦。摩尔斯电码就是这样⼀种早期的数字通信协议,它通过喇叭发声长短来表⽰不同的英⽂字母:
1. 点(半⾓点号 .),喇叭响 1 单位时间,读作 “滴” dit;
2. 划(半⾓减号 -),喇叭响 3 单位时间,读作 “嗒” dah;
3. 字符/单词间的停顿,字符停顿 3 单位时间,单词停顿 7 单位时间
下图列出了摩尔斯电码和英⽂字母之间的对应:

avatar

例如,⼤家可以试试把 “... --- ...” 对照上⾯的表格翻译成英⽂(空格代表字符的分割)。没错,这就是著名的 “SOS” 紧急求救信号。现在,你需要写⼀个程序把收到的摩尔斯电码翻译回英⽂字符。

输入格式

输⼊数据的第⼀⾏是⼀个整数n ,代表共有 个需要解码的英⽂字母
输⼊数据的第⼆⾏包含n 个摩尔斯电码点/划组成的字符串(字符串之间⽤⼀个空格隔开),每个字符串仅包含若⼲半⾓减号 “-” 和半⾓点号 “.”,且保证能翻译为 26 个英⽂字母中的⼀个。

输出格式

输出⼀⾏,为摩尔斯电码解码后得到的字符串

样例数据1

input

3
... --- ...

output

SOS

样例数据2

input

35
- .... . --.- ..- .. -.-. -.- -... .-. --- .-- -. ..-. --- -..- .---
..- -- .--. ... --- ...- . .-. - .... . .-.. .- --.. -.-- -.. --- --.

output

THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
解释:“The quick brown fox jumps over the lazy dog” 是⼀个经典的包含了所有 26 个字母的句⼦。此外请注意因为⽂本宽度限制,样例第⼆⾏中的摩尔斯电码产⽣了断⾏。在实际的输⼊数据中,所有的摩尔斯电码均在同⼀⾏。

数据规模

对于 100% 的数据  1<=n<=1000