Решить на языке Python: Секретный шифр Вы подозреваете, что роботы что-то замышляют. Придётся прочесть их секретные сообщения. Шифр они придумали невероятно сложный: буква А заменяется на 🍉, буква Б — на 🍌 и так далее. «Несъедобные» буквы (например, Е) не заменяются. Список «съедобных» букв: АБВГДКЛМОПСТЯ. И их замены: 🍉🍌🍒🍐🍈🍓🍋🥕🥒🍅🥬🎃🍎. Расшифруйте и выведите все сообщения. Программное содержание по ФРП: обработка символьных данных.
Задача описывает простой подстановочный шифр: каждая буква из списка АБВГДКЛМОПСТЯ заменяется на соответствующую ей эмодзи из списка 🍉🍌🍒🍐🍈🍓🍋🥕🥒🍅🥬🎃🍎. Несъедобные буквы (например, Е) не зашифованы и остаются как есть. Нужно расшифровать сообщение, то есть заменить эмодзи обратно на буквы.
Детальное решение (пояснение шаг за шагом)
- Создаём соответствие по парам: эмодзи -> буква. Берём буквы в порядке АБВГДКЛМОПСТЯ и эмодзи в порядке 🍉🍌🍒🍐🍈🍓🍋🥕🥒🍅🥬🎃🍎.
- Считываем входной текст целиком (stdin). Он может содержать несколько строк.
- В тексте последовательно заменяем каждый эмодзи на соответствующую букву.
- В результате выводим расшифрованный текст. Несъедобные буквы остаются без изменений, так как для них замен не предусмотрено.
Пример кода на Python 3:
```python
import sys
def decode(text: str) -> str:
# Список букв и их замены (слева направо должны соответствовать друг другу)
letters = "АБВГДКЛМОПСТЯ"
emojis = ["🍉","🍌","🍒","🍐","🍈","🍓","🍋","🥕","🥒","🍅","🥬","🎃","🍎"]
# Формируем карту замены: эмодзи -> буква
emoji_to_letter = {e: l for e, l in zip(emojis, letters)}
# Декодируем текст: заменяем все встречающиеся эмодзи на буквы
for emoji, letter in emoji_to_letter.items():
text = text.replace(emoji, letter)
return text
def main():
data = sys.stdin.read()
if not data:
return
print(decode(data), end="")
if __name__ == "__main__":
main()
```
Как использовать
- Сохраните код в файл, например decode_cipher.py.
- Передайте через входной поток текст с зашифрованными сообщениями:
- python decode_cipher.py < input.txt
- или вставляйте текст напрямую в stdin (через пробелы, новые строки и т.д.).
- В результате вы получите расшифрованные сообщения, где эмодзи заменены на соответствующие буквы.
Примечания
- В коде используются только заглавные буквы кириллицы и указанные эмодзи. Несъедобные буквы (например, Е) останутся в тексте без изменений, если их не заменяют эмодзи.
- Если вход может содержать и другие символы, они остаются неизменными. Если нужно расширить до маленьких букв, можно аналогично добавить соответствующие пары и привести к нужному регистру.