2

特定の位置に特定の文字が含まれる単語(アイテム)の存在を照会できる辞書を保持するための適切なデータ構造を誰かが提案できますか?たとえば、x、y、zの位置にa、b、cの文字が含まれている単語(ある場合)を特定します。挿入は特に効率的である必要はありません。

これは基本的にスクラブルの問題です(私も文字に関連するスコアを持っていますが、それは私たちに関係する必要はありません)。バイオインフォマティクスは、配列アラインメントを装って同じ問題を研究しているのではないかと思います。スピードの面で最先端は何ですか?

4

1 に答える 1

2

非常に高速なScrabbleプレーヤーを構築しようとしている場合は、その目的のために特別に設計されたGADDAGデータ構造を調べることをお勧めします。基本的に、GADDAGは圧縮されたトライ構造(具体的には、変更されたDAWG)であり、単語のどの文字をどの位置に配置する必要があるかについての制約を受けて、特定の文字セットで作成できるすべての単語を外側に探索して見つけることができます。 、および見つかった文字列の全長。

GADDAGに関するウィキペディアの記事では、構造についてさらに詳しく説明し、この主題に関する元の論文へのリンクを示しています。また、DAWGを出発点として検討することもできます。

お役に立てれば!

于 2012-12-27T08:41:06.207 に答える