ある長さNの「ターゲット文字列」(またはリスト、実際には重要ではない)があるとしましょう。簡単にするために、「A」と「B」の2つの可能な文字だけがあるとしましょう。したがって、たとえば、ターゲット文字列は「ABBABB」である可能性があります。
次に、ある長さ<= Nのテスト文字列が与えられます(ここでも、同じ2つの可能な文字)。正当な変換は文字の挿入だけであるという制約の下で、テスト文字列をターゲット文字列に変換できるかどうかを判断したいと思います。
たとえば、ターゲットがABBABBで、テストがBBBであるとします。その場合、答えは「はい」です。テストをターゲットに変換できます。例:BBB-> BBAB->ABBAB->ABBABB。
ただし、テストがBABAの場合、ターゲットはAで始まるため、ターゲットに変換できません。テストは機能しません。また、Aをテストに挿入すると、Aが増えるため、機能しません。ターゲットが持っているよりも。
明らかに、私はブルートフォースによってこれを「はい」または「いいえ」で判断し、可能なすべての文字挿入シーケンスを実行することができました。しかし、もっと効率的な方法はありますか?
前もって感謝します。