文字列内の部分文字列の繰り返しの最大数を検索しようとしています。ここにいくつかの例を示します。
"AQMQMB" => QM (2x)
"AQMPQMB" => <nothing>
"AACABABCABCABCP" => A (2x), AB (2x), ABC (3x)
ご覧のとおり、私は連続した部分文字列のみを検索していますが、これは問題のようです。すべての圧縮アルゴリズム(少なくとも私が知っている)は連続性( LZ * )を気にしないか、単純すぎて連続するパターンを処理できないためです。単一のデータ項目(RLE)の代わりに。同じ問題があるため、接尾辞木関連のアルゴリズムを使用することも役に立たないと思います。
これを行うことができるいくつかのバイオインフォマティクスアルゴリズムがあると思いますが、誰かがそのようなアルゴリズムについてのアイデアを持っていますか?
編集 2番目の例では、連続するパターンの可能性が複数ある可能性があります(Eugen Rieckの通知に感謝します。以下のコメントを読んでください)が、私のユースケースでは、これらの可能性のいずれも実際に受け入れられます。