主な DNA シーケンス (文字列) が与えられ (文字列 1 とします)、検索する別の文字列 (文字列 2 とします) が与えられます。string2 がサブシーケンスである string1 で最小長のウィンドウを見つける必要があります。
string1 = "abcdefababaef"
string2 = "abf"
私が考えたが、機能していないように見えるアプローチ:
1. 最長共通サブシーケンス (LCS) アプローチを使用し、(LCS の長さ = string2 の長さ) かどうかを確認します。しかし、これにより、string2 がサブシーケンスとして string1 に存在するかどうかがわかりますが、最小のウィンドウではありません。
2. KMP アルゴリズムですが、変更方法がわかりません。
3. string2 にある string1 の {characters: pos of characters} のマップを準備します。次のように: { a : 0,6,8,10
b : 1,7,9
f : 5,12 }
そして、最小ウィンドウを見つけて「abf」の順序を維持するためのいくつかのアプローチ
自分が正しい方向に考えているのか、それとも完全に間違っているのか、よくわかりません。
これには既知のアルゴリズムがありますか、または誰かがアプローチを知っていますか? よろしくお願いします。
前もって感謝します。