Ctrl K

Цепочка по одной букве

Сложная
Даны слова start и target одинаковой длины и словарь dictionary. Нужно пройти от start к target цепочкой слов, в которой каждое следующее слово отличается от предыдущего ровно одной буквой на одной позиции. Все слова цепочки, кроме самого start, должны быть из словаря; само start в словаре быть не обязано. Верните количество слов в самой короткой такой цепочке, считая start и target. Если дойти до target нельзя, верните 0.
Пример 1
start='cold', target='warm', dictionary=['cord', 'card', 'ward', 'warm', 'word', 'worm'] → 5

Самая короткая цепочка: cold → cord → card → ward → warm, в ней 5 слов. Через word и worm тоже выходит 5.

Пример 2
start='cold', target='warm', dictionary=['cord', 'card', 'ward'] → 0

Слова «warm» нет в словаре, поэтому цепочку не закончить.

Пример 3
start='ab', target='cb', dictionary=['cb'] → 2

Слова отличаются одной буквой, цепочка из двух слов.

Ограничения
  • 1 ≤ start.length ≤ 10
  • target.length == start.length
  • 1 ≤ dictionary.length ≤ 5000
  • dictionary[i].length == start.length
  • start, target и dictionary[i] состоят только из строчных латинских букв
  • start ≠ target
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСемейства слов на один обмен СложнаяЦепочка правок гена СредняяСклеить карточки контактов СредняяЦепочки синонимов СредняяПовороты кодового замка Средняя
загружаем Python…
Вход
start='cold', target='warm', dictionary=['cord', 'card', 'ward', 'warm', 'word', 'worm']
Ожидается
5

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