单点时限: 2.0 sec
内存限制: 256 MB
摩尔斯电码(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: 等)。然后对应每个问题在一行中输出莫尔斯电码表示的明文信息。
说明:在输出时,单词之间用一个空格符分隔,句子之间用字符.
分隔。英文字母均为大写字母。
3 .../---/... -/..../../...///../...///--/---/.-./..././//-.-./---/-.././////-.../-.--/. -./---///.----/..---/-----
case #0: SOS case #1: THIS IS MORSE CODE.BYE case #2: NO 120