Ctrl K

Шифр по ключевой фразе

Лёгкая
Двое друзей переписываются шифром. У них есть общая ключевая фраза key_phrase, в которой встречается каждая строчная латинская буква хотя бы один раз (пробелы тоже бывают). Таблица замены строится так: выпишите буквы ключа в порядке их **первого** появления, пропуская пробелы и повторы. Получится 26 разных букв. Первая из них расшифровывается как a, вторая — как b, и так далее до z. Расшифруйте сообщение text: замените каждую букву по таблице, а пробелы оставьте на месте. Верните получившуюся строку.
Пример 1
key_phrase='pack my box with five dozen liquor jugs', text='hmml pl fvvf' → 'meet at noon'

Буквы ключа по первому появлению: p a c k m y b o x w i t h f v e d z n l q u r j g s. Значит, p→a, a→b, c→c, k→d, m→e, …, h→m, f→n, v→o, l→t. Сообщение читается как «meet at noon».

Пример 2
key_phrase='zyxwvutsrqponmlkjihgfedcba', text='svool  dliow' → 'hello  world'

Ключ — алфавит задом наперёд, так что каждая буква заменяется на зеркальную; пробелы остаются как есть, даже двойные.

Ограничения
  • 26 ≤ len(key_phrase) ≤ 2000
  • 1 ≤ len(text) ≤ 2000
  • key_phrase и text состоят из строчных латинских букв и пробелов
  • В key_phrase есть каждая буква от a до z
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗначение римского числа ЛёгкаяОдин и тот же шифр ЛёгкаяТе же буквы, другой порядок ЛёгкаяЧисло вверх ногами ЛёгкаяПеремешать в палиндром Лёгкая
загружаем Python…
Вход
key_phrase='pack my box with five dozen liquor jugs', text='hmml pl fvvf'
Ожидается
'meet at noon'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 199 тестов на сервере, включая скрытые.