Я работаю над проблемой программирования для практики, и у меня возникают проблемы с поиском хорошей структуры данных/алгоритма для использования для реализации решения.
Фон:
Вызов двух слов "смежный", если вы можете изменить одно слово на другое, добавив, удалив или изменив одну букву.
"Список слов" - это упорядоченный список уникальных слов, в которых соседние слова смежны.
Проблема:
Напишите программу, которая принимает два слова в качестве входных данных и просматривает словарь и создает список слов между ними.
<сильные > Примеры:
hate → love: hate, have, hove, love
dogs → wolves: dogs, does, doles, soles, solves, wolves
man → woman: man, ran, roan, roman, woman
flour → flower: flour, lour, dour, doer, dower, lower, flower
Я не совсем уверен, как подойти к этой проблеме, моя первая попытка включала создание перестановок первого слова, а затем попытку заменить буквы в ней. Моя вторая мысль была чем-то вроде дерева суффиксов
Любые мысли или идеи по крайней мере для устранения проблемы будут оценены. Имейте в виду, что это не домашнее задание, а проблема программирования, над которой я работаю самостоятельно.