Ctrl K

Взаимозаменяемые буквы

Средняя
Даны две строки одинаковой длины left и right. Для каждой позиции i буквы left[i] и right[i] считаются *взаимозаменяемыми*. Взаимозаменяемость распространяется по цепочкам: если a можно заменить на b, а b — на c, то a можно заменить и на c. Любая буква взаимозаменяема сама с собой. Дано также слово word. Каждую его букву можно независимо заменить на любую взаимозаменяемую с ней. Верните лексикографически наименьшее слово, которое так можно получить.
Пример 1
left="tab", right="kxy", word="bat" → 'bak'

Пары дают группы {t, k}, {a, x}, {b, y}. b остаётся b, a — a, а t заменяем на k. Получаем bak.

Пример 2
left="cd", right="dz", word="zoo" → 'coo'

c = d и d = z, значит c, d, z взаимозаменяемы. z меняем на c, у o пар нет: coo.

Пример 3
left="m", right="m", word="mmm" → 'mmm'
Ограничения
  • 1 ≤ len(left) = len(right) ≤ 1000
  • 1 ≤ len(word) ≤ 1000
  • Все строки состоят из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЦепочки отношений СредняяСклеить карточки контактов СредняяЦепочки синонимов СредняяСовместимы ли равенства букв СредняяПерестановки по связям Средняя
загружаем Python…
Вход
left="tab", right="kxy", word="bat"
Ожидается
'bak'

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