Ctrl K

Слова по шаблону

Средняя
Даны список слов words и слово-шаблон template. Слово подходит под шаблон, если буквы шаблона можно взаимно однозначно заменить другими буквами так, чтобы получилось это слово: одинаковые буквы шаблона превращаются в одинаковые, а разные — в разные. Например, под шаблон "egg" подходит "add", но не "aaa" (разные e и g стали бы одной буквой) и не "abc". Верните все слова из words, которые подходят под шаблон. Порядок в ответе любой.
Пример 1
words=["noon", "deed", "tree", "abba", "moon"], template="otto" → ['noon', 'deed', 'abba']

У шаблона «otto» первая и последняя буквы совпадают, а две средние — одинаковые и другие. Так устроены «noon», «deed» и «abba». В «tree» и «moon» повторяющиеся буквы стоят не там.

Пример 2
words=["aaa", "abc", "xyx"], template="cat" → ['abc']

В «cat» все буквы разные, поэтому подходит только «abc»: в «aaa» и «xyx» буквы повторяются.

Пример 3
words=["q", "z"], template="m" → ['q', 'z']
Ограничения
  • 1 ≤ len(template) ≤ 20
  • 1 ≤ len(words) ≤ 50
  • len(words[i]) = len(template)
  • Все строки состоят из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазложить анаграммы по группам СредняяРазбиение на слова из словаря СредняяСлова, равные со сдвигом СредняяПодпоследовательность только одного слова СредняяФайлы с одинаковым содержимым Средняя
загружаем Python…
Вход
words=["noon", "deed", "tree", "abba", "moon"], template="otto"
Ожидается
['noon', 'deed', 'abba']

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