2012-03-20 7 views
0

私はPythonを使用して辞書の種類のアプリケーションを開発しています。私のコードでは、ソートされた文字列の集合からなるリストがあります。ユーザーがテキストを入力すると、指定された文字列で始まるすべての文字列を取得します。言い換えれば、私はちょうどユーザーが入力中に単語を提案したい。Pythonで指定された部分文字列を持つ文字列のリストを検索

例:ユーザーが "sub"という単語を入力した場合、サブストリング "sub"で始まるすべての文字列をリストから取得します。

誰でも私にこれを行うアルゴリズムを教えてもらえますか?皆さんありがとう。

+0

この機能は、通常、自動完了*と呼ばれます。しかし、インターネット検索エンジンに "python"と "auto-complete"を照会すると、ほとんどの結果がテキストエディターの自動補完Python構文に関連します。 – doug

+0

ハフマンコーディングをこの問題の考え方として考えてみましょう。 /en.wikipedia.org/wiki/Huffman_coding – wberry

+0

可能な複製:http://stackoverflow.com/questions/2332028/what-is-an-efficient-search-algorithm-to-provide-auto-completion –

答えて

1

リストのサイズに応じて、それを反復して、startswith()文字列関数を使用して結果を得ることができます。それが遅すぎる場合、一般的な方法はprefix treeを使用することです。

+0

ありがとうございました。それは私の問題を解決すると思う:) – Malaka

0

必要なものはトライのデータ構造です。これはあなたの求めるものに最適です。あなたのコードは大量の読み込み/読み込みを処理する必要があります。トライを見てください。実装が必要な場合は私に教えてください。

関連する問題