🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
摩尔斯电码 — 是一种使用点和划的序列对符号进行编码的方式。每个字母、数字或标点符号都有其独特的代码。
rn 在编写消息时,单个字母的代码之间用一个空格分隔。单词之间用三个空格分隔。例如,消息 "hi" 将显示为 .... .. 。而消息 "Hey Jude" — ..... . -.-- .--- ..- -.. . 。
还有一个用于灾难信号 SOS 的特殊代码,其传输方式如下: · · · − − − · · · 。该代码应作为一个不可分割的符号 "SOS" 进行处理。
你的任务 — 编写一个程序,接收一行摩尔斯电码作为输入,并将其解码为人类可理解的文本。最终消息中的所有字母应为大写。输入行开头或结尾的多余空格应被忽略。
一行包含摩尔斯电码消息的文本。符号之间用空格分隔。
一行——解码后的英文大写消息。
..... --.-- .--- ..--...
嘿,裘德
# Словарь для сопоставления кодов Морзе и символов.
# Включает специальный код для SOS.
MORSE_CODE_DICT = { '.-':'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', '-----':'0', '.----':'1', '..---':'2',
'...--':'3', '....-':'4', '.....':'5', '-....':'6', '--...':'7',
'---..':'8', '----.':'9', '···−−−···':'SOS' }
def decode_morse(morse_code: str) -> str:
"""
Декодирует строку с кодом Морзе в человекочитаемый текст.
:param morse_code: Строка с кодом Морзе.
:return: Декодированная строка.
"""
# Удаляем лишние пробелы в начале и конце строки
morse_code = morse_code.strip()
decoded_message = []
# Разделяем сообщение на слова по трём пробелам
morse_words = morse_code.split(' ')
for morse_word in morse_words:
decoded_word = ''
# Разделяем слово на коды букв по одному пробелу
morse_letters = morse_word.split(' ')
for letter_code in morse_letters:
# Находим соответствующий символ в словаре
# Используем get для избежания ошибки, если код не найден
decoded_word += MORSE_CODE_DICT.get(letter_code, '')
decoded_message.append(decoded_word)
# Соединяем декодированные слова в одно предложение
return ' '.join(decoded_message)
# Пример использования из условия
input_morse = input()
print(decode_morse(input_morse))
🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
AD
广告
正在运行代码...