私は練習のためにプログラミングの課題に取り組んでおり、解決策を実装するために使用する適切なデータ構造/アルゴリズムを見つけるのに苦労しています.
バックグラウンド:
1 つの文字を追加、削除、または変更することで、1 つの単語を別の単語に変更できる場合は、2 つの単語を「隣接」と呼びます。
「単語リスト」は、連続する単語が隣接している一意の単語の順序付きリストです。
問題:
入力として 2 つの単語を取り、辞書をたどってそれらの間の単語のリストを作成するプログラムを作成します。
例:
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
この問題にどのようにアプローチするかはよくわかりません。最初の試みでは、最初の単語の順列を作成し、その中の文字を置き換えようとしました。2 番目に考えたのは、サフィックス ツリーのようなものかもしれません。
少なくとも問題を分解するための考えやアイデアをいただければ幸いです。これは宿題ではなく、私が自分で取り組んでいるプログラミングの課題であることを覚えておいてください。