let S
, a
e b
cada um representa uma string
Objetivo: Escreve uma string padrão de função de substituir onde o que você substituir todas as ocorrências a
em uma string S
com b
contanto que a
já não faz parte de uma instância deb
por exemplo, se tivermos a string S
=My oh my that there is a big ol' that
e queríamos fazer uma substituição sofisticada por a = that
e b = that there
que iria substituir cada instância de that
com that there
o tempo que a instância do that
não é já um exemplo dethat there
Portanto, nesse caso, a saída seria: My oh my that there is a big ol' that there
O primeiro that
não é substituído porque já faz parte de uma instância dethat there
Notas
Todas as 3 entradas devem ser cadeias contendo apenas caracteres ascii imprimíveis
A entrada pode ser fornecida como três cadeias de caracteres separadas ou uma lista de três cadeias de caracteres
Entrada será na ordem
S
,a
,b
salvo disposição em contrário, a respostaPara
a
ser considerada parte deb
, toda a instância dea
deve fazer parte de uma instânciab
Alguns casos de canto explicados
Input: ["1222", "22", "122"]
Output: "12122"
No exemplo acima, o último 22
é substituído. Mesmo que parte dela faça parte de uma instância de b
, a totalidade NÃO é parte da instância de b
. Como a instância inteira de a
não faz parte de uma instância, b
ela é substituída.
Input: ["123 ", "23", "12"]
Output: "112 "
Este caso de teste ilustra o mesmo caso acima, mas talvez de uma maneira um pouco mais clara. Novamente 2
, o meio é parte de uma instância de a
, bem como parte de uma instância de b
, no entanto, como a
nem tudo é parte da instância, b
ele ainda é substituído.
Input: ["Empty", "", "p"]
Output: "pEpmptpyp"
No caso de teste acima, a cadeia vazia antes e depois da p
não é substituída, pois pode ser totalmente considerada parte da instância de p
.
Outros casos de teste
Input: ["aabbaa", "aa", "aabb"]
Output: "aabbaabb"
Input: ["Hello World!", "o", " no"]
Output: "Hell no W norld!"
Input: ["Wow, oh wow, seriously WOW that's... wow", "wow", "WOW,"]
Output: "Wow, oh WOW,, seriously WOW that's... WOW,"
Input: ["Empty", "", "b"]
Output: "bEbmbpbtbyb"
Input: ["Empty", "b", "br"]
Output: "Empty"
Input: ["Empty", "pty", "Empty"]
Output: "Empty"
Input: ["aabbaaa", "aa", "PP"]
Output: "PPbbPPa"
Input: ["121212","1","121"]
Output: "121212"
Esta é uma pergunta para o código-golfe, de modo que a resposta mais curta em bytes vence.