随笔 - 0  文章 - 5  trackbacks - 0
<2025年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿(2)

文章分类

文章档案

教育

信息学奥赛

有用网站

在线OJ

专题测试

租房信息

搜索

  •  

最新评论




内容

 

摩斯电码是一种传送文字讯息的方式,在电报通讯的时代被广泛地使用。它使用两种长短不同的讯号產生而成的序列来表示各个英文字母、数字和标点符号。我们用点( . )来表示短讯号,用划(一)来表示长讯号,在两个讯号间以很短的空白(无讯号的状态)来隔开。英文字母对应的摩斯电码如下:

       A .-      B -...      C -. - .    D -..     E .     F .. - .

       G - - .    H ....    I ..     J . - --    K -.-     L . - ..

       M --    N -.      O - - -    P . - -.    Q - - .-  R . - .

       S ...      T -       U ..-     V ...-      W . - -    X -..-

       Y -. - -  Z - - ..

在摩斯电码中,我们需要使用很短的空白来分隔两个讯号,用稍长的空白来分隔两个字母,用更长的空白来分隔两个英文单字。但是这样有些不方便,如果收讯号的人没办法精準的判断空白的长短,就会搞混 E 工和 S ,或是 AN P 。这个间题的原因是 S 的电码开头和 E 的电码重复, P 的电码开头和 A 的电码重复。為了解决这个间题,我们修改摩斯电码的编码规则,让每一个字母的电码都不会和其他字母的电码开头重复,我们称為「字首差异电码」。使用字首差异电码,我们不需要空白就可以分辨两个字母。这个电码与英文字母的对应如下:

 

       A - - -.      B - - ....     C . - ..-             D - - - - -

       E . - -             F .. - .-             G - - .. - -    H -...

       I -. - -              J .. - .. - . - - K .. - .. - -     L - - - - .

       M .. - - -    N -. - .             O - - .-             P - - ...-

       Q .. - .. - ..-  R . - .-             S -..-              T ...

       U . - ...             V .. - ...     W .. - -.     X .. - .. - . - .

       Y - - .. - .     Z .. - .. - ...

 

现在,给你一段字首差异电码,请你解读这段电码代表的英文字句。

输入说明

输入的第一行有一个正整数 T,代表测试资料的组数 (1 T 500)。接下来每一行有一个以点 ('.')、划 ('-') 和空白 (' ') 组成的字串,代表一组测试资料。点和划就如题目所说,分别代表短讯号和长讯号。我们忽略讯号之间的空白,而用空白字元代表两个单字的分隔。题目保证每一行的长度不超过 200 ,而且都能正确解码,没有多餘的讯号。一个字母的电码不会被空白字元切开,测试资料中也不会有连续的空白字元。

输出说明

对每一笔测资输出一行,即这段字首差异电码代表的英文字句。电码对应的英文字母以大写表示,两个英文单字间以一个空白字元隔开。

范例输入

 

4

...-...-.---..- -.---..- ---.-.-.

.-----.-..---..-.

--...-.-.---.---....----..--..---

--..-.--.-.-... .-..----.-.-. -------.- -.--...

范例输出

 

THIS IS AN

EASY

PROBLEM

YOU CAN DO IT

code


 

posted on 2012-06-12 15:47 龙在江湖 阅读(342) 评论(0)  编辑 收藏 引用 所属分类: 竞赛题解_NPSC