タスク
3つの文字列を指定してA, B, C
、B
inの各インスタンスがでA
再帰的に置換された出力文字列を生成するプログラムまたは関数を記述しC
ます。再帰的に置換とは、各ステップで重複しないB
inのすべてのインスタンスA
(左から右に貪欲に選択)がに含まれなくなるC
まで置換を繰り返すことを意味B
しA
ます。
入出力
- I / Oにはデフォルトのメソッドを使用できます。
- 文字列には、印刷可能なASCII文字のみが含まれます(また、それらのいずれかが含まれることもあります)。
B
一方で、空の文字列になることはありませんA
し、C
かもしれません。- 文字列はプレーンテキストとみなされます。たとえば、扱うことはできません
B
。、正規表現パターンとして。 - 入力の一部の組み合わせは終了しません。これらの場合、プログラムは何でもできます。
テストケース
これらは次の形式です。 A/B/C\nOutput
Hello, world!/world!/PPCG
Hello, PPCG
Uppercase is up/up/down
Uppercase is down
ababababa/aba/ccc
cccbcccba
delete/e/{empty string}
dlt
{empty string}/no/effect
{empty string}
llllrrrr/lr/rl
rrrrllll
+-+-+-+/+-+/+
+
ababababa/aba/bada
badabbadbada
abaaba/aba/ab
abb
((())())())/()/{empty string}
)
終了しない例:
grow/ow/oow
loop/lo/lo
downpercase is down
((())())())/()/