2012-03-15 17 views
0

私はすべての文字列の間で最も一般的な文字の組み合わせを見つけるために、お互いに比較したい固定長の文字列(それぞれ100文字の長さ)の束を持っています。一般的な組み合わせのために、文字列のデータベースに文字列を比較して格納する方法はありますか?

すでに収集された文字列のデータベースに新しい文字列をそれぞれ比較するにはどうすればよいでしょうか?そして、結果とデータベースに文字列を格納するにはどうすればよいでしょうか?これにはどんな種類のデータ構造が適していますか?

私は「ruby」という質問にタグを付けましたが、それはかなり一般的だと思うので、本当に何かを探しています。

答えて

1

あなたはこれらの3つの文字列のためにことを意味している場合:あなたは次の出力を得たい

ABC BCD CDE

a - 1 
b - 2 
c - 3 
d - 2 
e - 1 
ab - 1 
bc - 2 
cd - 2 
de - 1 
abc - 1 
bcd - 1 
cde - 1 

その後、私はをお勧めしますTRIEhttp://en.wikipedia.org/wiki/Trie)を表示し、表示回数ノード内の各キャラクタグループの個数(新しい一致が見つかるたびに1を加える)。

アルゴリズムはその後、「ABC」と非常に簡単

スタートすることと、あなたが訪問したすべてのノードに1を追加します(必要に応じて新しいノードを作成する)ツリーを走査しながら、その後、C」とし、「BC」で継続してできました'そして 'bcd'と同じです。 、それが役に立てば幸い

などのトリプル、「D」

ツリーをトラバースし、すべてのダブルスをカバーする必要があり訪れた各ノードに1を加えながら、「BCD」、「CD」のために行くrezna

関連する問題