摩尔斯电码
* * * *
拉格朗日计划
* * * *
摩尔斯电码

用 ▄ (U+2584,左下方块记号) 表示点,将给定的字符串转译为摩尔斯电码,具体规则如下:

电码由点和划构,连续三点表示一划。

同一字符中的点和划之间由一个空格隔开。

不同字符之间由三个空格隔开。

不同单词之间由十个空格隔开。

    "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": "- - . .",         "1": ". - - - -",
    "2": ". . - - -",       "3": ". . . - -",       "4": ". . . . -",
    "5": ". . . . .",       "6": "- . . . .",       "7": "- - . . .",
    "8": "- - - . .",       "9": "- - - - .",       "0": "- - - - -",
    " ": "    "
本题难度:



解答

根据规则转译即可。

注意空格也视为独立的单词,需要在转码(变为四个空格)后再在其后添加三个空格。

最终代码有两行。

代码长度:349字节 vs. 全站第一:140字节。

import sys
print(''.join(([' '.join({'.':'▄','-':'▄▄▄'}[i]for i in c)for c in '----. ---.. --... -.... ..... ....- ...-- ..--- .---- ----- --.. -.-- -..- ...- --.- .--. .-.. .--- .... ..-. -.-. -... .-- ..- ... .-. --- -.- --. -.. -. -- .. .- - .'.split()]+[' '*4])['9876543210ZYXVQPLJHFCBWUSROKGDNMIATE'.find(k)]+' '*3for k in sys.argv[1]))