0

私は単語のリストを持っています。単語数は約100万語。

リストのどの単語が文字列に存在するかを確認し、その単語を返す必要があります (文に含まれるすべての単語を返す必要はなく、最初の単語を返すだけで十分です)。

解決策の 1 つは、文字列内のすべての単語を 1 つずつチェックすることですが、効率的ではありません。

誰かがそれを行う効率的な方法を指摘できますか?

4

3 に答える 3

1

Knuth-Morris-Prattアルゴリズムを使用します。百万の言葉はそれほど多くはありませんが。テキスト本文をトライ構造に変換し、それを使用して検索リストをチェックすることもできます。特に全文検索に使用されるSuffix Treeと呼ばれる特別な種類の Trie があります。

于 2012-09-27T04:14:08.157 に答える
0

二分探索を実行するために単語のリストが順序付けられている (または順序付けられた二分木のような効率的なデータ構造に挿入されている) 場合を除き、提案している解決策は最も効率的な解決策です。

于 2012-09-27T04:13:30.307 に答える
0

単語リストをツリーまたはハッシュ テーブルに入れます。

于 2012-09-27T04:10:54.770 に答える