A tarefa
Escreva um programa ou função que, com três seqüências de caracteres, A, B, Cproduza uma sequência de saída em que cada instância de Bin Afoi recursivamente substituída por C. Substituir recursivamente significa repetir uma substituição em que em cada etapa todas as instâncias não sobrepostas de Bin A(escolhidas avidamente da esquerda para a direita) são substituídas por Caté que Bnão esteja mais contida A.
Entrada / Saída
- Você pode usar qualquer um dos métodos padrão para I / O .
- As seqüências conterão apenas caracteres ASCII imprimíveis (e podem conter qualquer um deles).
Bnunca será uma string vazia, enquantoAeCpode ser.- Seqüências de caracteres devem ser consideradas texto sem formatação, você não pode, por exemplo, tratar
Bcomo um padrão Regex. - Algumas combinações de entradas nunca terminam. Seu programa pode fazer qualquer coisa nesses casos.
Casos de teste
Estes estão no 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}
)
Exemplos que não terminam:
grow/ow/oow
loop/lo/lo
downpercase is down
((())())())/()/