Змінник слів - це гра, в якій ви намагаєтесь перетворити одне слово на інше за допомогою однозначних редагувань, кожен крок - це власне слово. Для цього виклику правки можуть бути замінами, вставками чи видаленнями. Наприклад, WINNER → LOSER можна виконати за цим маршрутом (можуть бути й інші):
WINNER
DINNER
DINER
DINE
LINE
LONE
LOSE
LOSER
Фразований іншим способом, ви повинні мати можливість дістатися до одного слова від іншого, переходячи лише через інші слова на відстані Левенштейна, що дорівнює 1.
Кодування
Вам буде надано список слів і два слова, і ви повинні вивести дійсний маршрут від одного слова до іншого, якщо маршрут існує або чітке постійне значення або послідовна поведінка, якщо маршруту немає.
- Ви можете припустити, що введені слова є в списку слів
- Список слів можна взяти за допомогою будь-якого зручного плоского формату.
- Списки, набори, спроби, рядки, розділені пробілом, і файли, розділені рядками, є дійсними (наприклад), але попередньо обчислений графік суміжності Левенштейна - ні.
- Маршрут виводу повинен включати обидва вхідні слова, але те, що починається і закінчується, не має значення.
- Якщо маршрут не знайдений, ви можете вивести конкретну константу, хибне значення, порожній список, викинути виняток, вийти з ненульовим кодом або будь-яку іншу поведінку, що відбувається в обмежений час.
- Маршрут не повинен бути оптимальним, і немає вимоги, який маршрут слід пройти
- Комплексна обчислювальність не має значення, однак ваша програма повинна бути гарантовано гарантована, що вона завершиться за певний час. (навіть якщо це би перебігло теплову смерть Всесвіту)
- Ви можете припустити, що всі слова повністю складаються з букв в одному випадку
Приклади тестових випадків
- CAT → DOG; [CAT, DOG, COG, COT, FROG, GROG, BOG]
- CAT, COT, COG, DOG
- БАНЯ → ДУШ; [Ванна, душ, шапочка, шапочка, ванна, сат, пила, соу, шоу, як]
- Маршрут не знайдено
- BREAK → FIX; [BREAK, FIX, BEAK, BREAD, READ, BEAD, CRED, BED, BAD, BID, FAD, FAX]
- ПОЛУЧАЙТЕ, ХЛІБКА, БІЗ, НЕГО, ЗНАЧЕННЯ, ФАКС, ФІКС
- БУДІВНИЦТВО → ДЕСТРОЙ; [БУДІВНИЦТВО, ДЕСТРОЙ, СТРОИТЕЛЬНІСТЬ, ПІДГОТОВЛЕННЯ, ГУЛІД, ДІЛЬ, ГІЛЬ, ВИРОБНИЦТВО, УРОК, ЗАЛИШКА, РОЗБУТ, СТРУКТУРА, КОНСТРУКТУРА]
- Маршрут не знайдено
- КАРТКА → РАДА; [Картка, рада, борд]
- КАРТКА, БАРД, КАРТА
- ДЕМОН → АНГЕЛ; [ДЕМОН, АНГЕЛЬ]
- Маршрут не знайдено
- ОСТАННІ → МІННІ; [ОСТАННІ, МІННІ, ВІДХОДНІ, ЛІТНІ, ЧЕРНІ, ПРИГОТОВІ, ПОШТОВІ, ПОБУТНІ]
- ОСТАННІ, ПРОСТІ
- ВСТАВКА → ВИДАЛИТИ; Цей список слів
- ВСТАВКА, ВПРАВЛІННЯ, ІНВЕНТ, ВХОД, НЕБЕНТ, НЕБЕНД, БЕЗПЛАТИ, НЕЗАБАВЛЕННЯ, НЕКІНГ, ВПРАВЛЕННЯ, БЕЗПЕЧЕННЯ, ДІРКІНГ, ДАМКІН, ДАРЛІНГ, АРЛІНГ, АЙЛІНГ, СЕРІНГ, СЕРІНГ, СЕРІНА, НЕРИН, НЕРІТ, СЕРІТ, СЕРАТ, ДЕРАТ, ДЕРАТ УДАЛИТИ