我正在练习编程挑战,但是在找到一个好的数据结构/算法来实现解决方案时遇到了困难。
背景:
如果您可以通过添加、删除或更改单个字母将一个单词变成另一个单词,则称两个单词为“相邻的”。
“单词列表”是一个有序的唯一单词列表,其中连续的单词是相邻的。
问题:
编写一个程序,它接收两个单词作为输入,并遍历字典并创建它们之间的单词列表。
示例:
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
我不太确定如何解决这个问题,我的第一次尝试涉及创建第一个单词的排列,然后尝试替换其中的字母。我的第二个想法是可能类似于后缀树。
如果你有任何想法或建议,至少对分解问题会很感激。请记住,这不是作业,而是我自己正在处理的编程挑战。