L'obiettivo
Scrivere un programma o una funzione che danno tre stringhe A, B, Cproduce una stringa di output in cui ogni istanza di Bin Aè stata sostituita in modo ricorsivo C. Sostituire in modo ricorsivo significa ripetere una sostituzione in cui ad ogni passo tutte le istanze non sovrapposte di Bin A(scelte avidamente da sinistra a destra) vengono sostituite con Cfinché Bnon è più contenuto A.
Input Output
- È possibile utilizzare uno qualsiasi dei metodi predefiniti per l'I / O .
- Le stringhe conterranno solo caratteri ASCII stampabili (e potrebbero contenere uno qualsiasi di essi).
Bnon sarà mai una stringa vuota, mentreAeCpotrebbe essere.- Le stringhe devono essere considerate in chiaro, ad esempio non è possibile trattare
Bcome un modello Regex. - Alcune combinazioni di input non termineranno mai. Il tuo programma può fare qualsiasi cosa in questi casi.
Casi test
Questi sono nel formato: 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}
)
Esempi che non terminano:
grow/ow/oow
loop/lo/lo
downpercase is down
((())())())/()/