非公式の問題声明:
などの文字列が与えられたとき、左から右に赤い文字のみを読むと、読むのと同じ結果が得られるように、いくつかの文字を赤、いくつかの文字を青に色付けします。青い文字のみ。
例では、次のように色を付けることができます
したがって、は繰り返しサブシーケンスであると言います。また、最長の繰り返しサブシーケンスです(確認しやすい)。
最長の繰り返しサブシーケンスを効率的に計算できますか?
正式な質問:
文字列といくつかのについて、長さ繰り返し部分シーケンスが文字列に存在するかどうかを決定するのはNP困難ですか?
- その場合:どの問題をこの問題に減らすことができますか?
- そうでない場合:効率的なアルゴリズムとは何ですか?(明らかに、このアルゴリズムを使用して、最長の繰り返しサブシーケンスを計算できます)
ボーナス質問:
アルファベットのサイズが定数で制限されている場合、それらは常に長さ繰り返し部分シーケンスになりますか?
(これはバイナリアルファベットに当てはまることが知られています。)
編集2:ボーナス質問に対する否定的な答えは、少なくとも文字のアルファベットで既に知られています。実際、サイズがアルファベットの場合、長さが単に最も長い繰り返しサブシーケンスを持つ文字列があります。これを表示するには、ランダムな文字列で十分です。結果はすでに存在していましたが、見落としていました。
編集: 注:
一部の人々は、「サブシーケンス」と言うときに「サブストリング」を意味します。しません。これは、サブストリングを2回見つける問題ではありません。