我已经变得越来越警觉的空间仇和这个答案一直激励着我,以确保莫尔斯电码是从这个阴险去除空白的安全。
因此,您的任务是创建一个程序,该程序可以在删除所有空格的情况下成功翻译摩尔斯电码。
规则:
输入将是仅由破折号和点组成的字符串(ASCII 2D和2E)。对于包含任何其他字符的输入,输出是未定义的。随意使用任何适合您选择的语言的方法来接收输入(stdin,文本文件,提示用户等)。您可以假设摩尔斯电码输入仅包含字母AZ,并且不需要匹配的数字或标点符号。
输出应仅包含此词典文件中包含的单词(再次,可以使用任何方便的方法访问词典文件)。所有有效的解码都应输出到stdout,并且必须使用输入中的所有点和破折号。输出中每个匹配的单词都应以空格分隔,每个可能的解码均应以换行符分隔。您可以方便地使用大写,小写或大小写混合的输出。
如上所述,对标准漏洞的所有限制都适用,但有一个例外,如果您确实愿意,可以通过Internet连接访问要求2中引用的词典文件。URL缩短是可以接受的,我认为goo.gl/46I35Z可能是最短的。
这是代码高尔夫球,最短的代码获胜。
注意:将字典文件发布到Pastebin上后,所有行尾都更改为Windows样式0A 0E序列。您的程序可以假定行尾仅以0A,仅0E或0A 0E结尾。
测试用例:
输入:
......-...-..---.-----.-..-..- ..
输出必须包含:
你好,世界
输入:
.--..-.---------..-..-----..-...--...---..--...-.... ...--.-..-.-.----......--.---.-....-
输出必须包含:
编程难题和代码高尔夫
输入:
-.....--....-..-.-.-.--....-.---.---...-.----..-.- --..---.--....---...-..-.-......-...---..-.---..-- ---。
输出必须包含:
敏捷的棕色狐狸跳过了懒狗
AN (.- -.)
和之间EG (. --.)
?