La tarea
Escribir un programa o función que con tres cadenas A, B, Cproduce una cadena de salida donde cada instancia de Bin Aha sido sustituida recursivamente con C. Sustituir recursivamente significa repetir una sustitución en la que en cada paso todas las instancias no superpuestas de Bin A(elegidas con avidez de izquierda a derecha) se reemplazan por Chasta que Bya no estén contenidas A.
De entrada y salida
- Puede utilizar cualquiera de los métodos predeterminados de E / S .
- Las cadenas contendrán solo caracteres ASCII imprimibles (y pueden contener cualquiera de ellos).
BNunca será una cadena vacía, mientras queAyCque podría ser.- Las cadenas deben considerarse texto plano, por ejemplo, no puede tratarse
Bcomo un patrón Regex. - Algunas combinaciones de entradas nunca terminarán. Su programa puede hacer cualquier cosa en esos casos.
Casos de prueba
Estos están en el 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}
)
Ejemplos que no terminan:
grow/ow/oow
loop/lo/lo
downpercase is down
((())())())/()/