🎉 تهانينا! 🎉
لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.
ProgerLib Python للجميع
تغيير السمة
شفرة مورس — هي طريقة لتشفير الرموز باستخدام تسلسلات من النقاط والشرطات. كل حرف أو رقم أو علامة ترقيم لها رمزها الفريد.
rn عند تجميع الرسائل، يتم فصل رموز الحروف الفردية بمسافة واحدة. يتم فصل الكلمات بثلاث مسافات. على سبيل المثال، ستبدو الرسالة "مرحبًا" هكذا .... .. . والرسالة "مرحبًا جود" — ..... --.----- ..--... .
هناك أيضًا رمز خاص لإشارة الاستغاثة SOS، والذي يتم إرساله بدون فواصل: · · · − − − · · · . يجب معالجة هذا الرمز كرمز واحد غير قابل للتجزئة "SOS".
مهمتك — كتابة برنامج يأخذ سطرًا يحتوي على شفرة مورس كمدخل ويفك تشفيرها إلى نص مفهوم للبشر. يجب أن تكون جميع الحروف في الرسالة النهائية كبيرة. يجب تجاهل المسافات الإضافية في بداية أو نهاية سطر الإدخال.
سطر واحد يحتوي على رسالة بشفرة مورس. الرموز: . (نقطة)، - (شرطة)، (مسافة بين الحروف)، (ثلاث مسافات بين الكلمات).
سطر واحد & mdash; الرسالة المفكوكة بالأحرف الكبيرة باللغة الإنجليزية.
..... --.-- .--- ..--...
مرحبًا جود
# Словарь для сопоставления кодов Морзе и символов.
# Включает специальный код для 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
إعلان
جارٍ تشغيل الكود...