2011-05-09 2 views
2

私はテキストアルゴリズムに関するいくつかのことが不思議です。Cテキストアルゴリズム

たとえば、バイナリワード:1011101110001101 この単語の特定の固定サブシーケンスを検索するにはどうすればよいですか? 1と0の同じ量を持っている単語の中で最も長い固定サブシーケンスを見つける方法例えば

(LFSそれを呼び出すことができますか)?

、別の、どのようにそれで0以上1年代にLFSを見つけるには?

例: 単語:1001010 同じ量の1と0でLFSを検索しています。

だから、これLFSは100101

だろう。しかし0よりも1代以上で、私たちは持っているでしょう:101

この高速化はO(n^2)よりも解決する方法は?

Chris。

+0

ようなことBFSような何かをやる、この宿題ですか?それとよく似ています... – RedX

+2

CまたはC++?タイトルはC、タグはC++と言っていますが、共通の(誤った)信念に反して、言語は同じではありません。 –

+0

いいえ、それは宿題ではない、私は来年ITコンテストに参加しようとしているので、好奇心をそそることを学ぼうとしている。 – Spinach

答えて

4

あなたは、入力のうちのTrieを作ることができます。

これは、LFS文字列を見つけるのに役立ちます。

あなたは1と0をカウントし、その後、あなたは簡単にストリング・ノード上でこれらの数字を見つけることができます作成​​アルゴリズムを変更することができます。検索し

Suffix Treeを見だけでなく..

創造= O(n)の
は、あなたはおそらくもO(N)