Ctrl K

Почти словарные слова

Средняя
Игроки вводят коды-слова, и игра прощает небольшие опечатки. Дан список введённых слов words и словарь vocab. Все слова в обоих списках состоят из строчных латинских букв и имеют одинаковую длину. За одну правку можно заменить в слове одну букву на любую другую. Слово из words засчитывается, если не более чем двумя правками его можно превратить в какое-нибудь слово из vocab (ноль правок тоже подходит). Верните все засчитанные слова в том порядке, в котором они идут в words.
Пример 1
words=["cart", "milk", "bred", "jamm"], vocab=["card", "brew", "silk"] → ['cart', 'milk', 'bred']

cart → card и bred → brew — по одной замене, milk → silk — тоже одна. А jamm отличается от любого слова словаря минимум в трёх позициях.

Пример 2
words=["abc"], vocab=["xyz"] → []

Все три буквы разные — двух замен не хватит.

Пример 3
words=["moon", "moon"], vocab=["noon"] → ['moon', 'moon']

Повторы в words сохраняются: каждое вхождение проверяется отдельно.

Ограничения
  • 1 ≤ len(words), len(vocab) ≤ 100
  • Все слова одной длины n, 1 ≤ n ≤ 100
  • Слова состоят из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазбиение на слова из словаря СредняяПодсветить найденное СредняяСократить слова до корней СредняяСамые частые запросы СредняяСлово, выращенное по букве Средняя
загружаем Python…
Вход
words=["cart", "milk", "bred", "jamm"], vocab=["card", "brew", "silk"]
Ожидается
['cart', 'milk', 'bred']

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