-1

特定の単語がアルファベットの 2-D マトリックスに存在するかどうかを調べるためにバックトラッキングを使用できると聞いたことがありますが、それを実装する方法がわかりません。たとえば、次のような行列がある場合:

G O P
N N A
A B E

ルールは、任意の位置から水平、垂直、斜めに移動できるというもので、上記の行列に単語 "GONE" が含まれているかどうかを判断する必要があります。ここで、最初にすべての G の位置を保存し (>1 G が存在する場合)、その位置のそれぞれからチェックを開始できますが、バックトラッキングを使用してチェックするにはどうすればよいでしょうか? ありがとう。

4

2 に答える 2

2

このゲームはBoggleと呼ばれます。これについては、SOに関する素敵なスレッドがあります(コード例を含む)。

于 2012-03-21T20:57:40.393 に答える
0

アルゴリズムを疑似コーディングします

その位置で単語開始バックトレース機能から開始文字を見つけます(次の文字またはleeterの次の位置を渡します)

これが探している最後の位置である場合は、それを見つけます。N (北) の文字が次の文字かどうかを確認し、その位置 (現在の場所) と次の文字 (または次の文字の文字列内の位置) を使用して関数を再度呼び出します。そうでない場合は、NEなどで文字を確認してください。終了して適切な一致が見つからない場合は、前の呼び出しに戻ります。

HTH、必要に応じて説明を求めてください。

于 2012-03-21T17:56:29.583 に答える