Die Aufgabe
Schreiben Sie ein Programm oder eine Funktion, die mit drei Zeichenfolgen A, B, Ceine Ausgabezeichenfolge erzeugt, durch die jede Instanz von Bin Arekursiv ersetzt wurde C. Rekursives Ersetzen bedeutet das Wiederholen eines Ersetzens, wobei bei jedem Schritt alle nicht überlappenden Instanzen von Bin A(gierig von links nach rechts gewählt) durch ersetzt werden, Cbis Bnicht mehr in enthalten ist A.
Input-Output
- Sie können eine der Standardmethoden für E / A verwenden .
- Zeichenfolgen enthalten nur druckbare ASCII-Zeichen (und können beliebige davon enthalten).
Bwird niemals eine leere Zeichenfolge sein, währendAundCmöglicherweise.- Zeichenfolgen sind als Klartext zu betrachten, Sie können sie beispielsweise nicht
Bals Regex-Muster behandeln. - Einige Kombinationen von Eingaben werden niemals beendet. Ihr Programm kann in diesen Fällen alles tun.
Testfälle
Diese sind im Format: 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}
)
Beispiele, die nicht enden:
grow/ow/oow
loop/lo/lo
downpercase is down
((())())())/()/