30
サブシーケンス置換
ほとんどの言語には、指定された部分文字列のすべての出現を文字列で検索し、それらを別の部分文字列に置き換える組み込み機能が付属しています。この概念を(必ずしも連続的ではない)サブシーケンスに一般化する言語は知りません。それがこの挑戦におけるあなたの仕事です。 入力は3つの文字列A、BおよびCで構成されます。ここでBおよびCは同じ長さであることが保証されています。のBサブシーケンスとして表示される場合は、Aに置き換える必要がありCます。以下に簡単な例を示します。 A: abcdefghijklmnopqrstuvwxyz B: ghost C: 12345 次のように処理されます。 abcdefghijklmnopqrstuvwxyz || | || abcdef12ijklmn3pqr45uvwxyz Bサブシーケンスとして検索する方法がいくつかある場合は、左端のものを貪欲に置き換える必要があります。 A: abcdeedcba B: ada C: BOB Result: BbcOeedcbB and NOT: BbcdeeOcbB B複数のばらばらの場所で見つかった場合も同様です。 A: abcdeedcbaabcde B: ed C: 12 Result: abcd1e2cbaabcde and NOT: abcd112cbaabc2e (or similar) Bがに表示されない場合はA、Aそのまま出力する必要があります。 ルール 上述したように、3つの文字列を取りA、BそしてC入力などとの一番左の発生を置き換えるBにサブシーケンスとしてA持つCいかなるがある場合は、。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 3つの文字列は、回答で指定する必要がある一貫した順序で取得できます。あなたはそれを仮定し、同じ長さBをC持つことができます。すべての文字列には英数字のみが含まれます。 標準のコードゴルフ規則が適用されます。 テストケース 各テストケースは4行AでB、:C、、その後に結果が続きます。 abcdefghijklmnopqrstuvwxyz ghost …