laissez S
, a
et b
chacun représente une chaîne
Objectif: écrire une fonction de remplacement de chaîne standard dans laquelle vous remplacez toutes les occurrences d' a
une chaîne S
par b
tant qu'elle a
ne fait pas déjà partie d'une instance deb
par exemple, si nous avons la chaîne S
=My oh my that there is a big ol' that
et nous voulions faire un remplacement de fantaisie avec a = that
et b = that there
nous remplacerions chaque instance de that
avec that there
tant que l'instance de that
n'est pas déjà une instance dethat there
Donc, dans ce cas, la sortie serait: My oh my that there is a big ol' that there
Le premier that
n'est pas remplacé car il fait déjà partie d'une instance dethat there
Remarques
Les 3 entrées doivent être des chaînes contenant uniquement des caractères ascii imprimables
L'entrée peut être donnée sous la forme de 3 chaînes distinctes ou d'une liste de 3 chaînes
Entrée sera dans l'ordre
S
,a
,b
sauf indication contraire dans la réponsePour
a
être considéré comme faisant partie deb
, toutes les instances dea
doivent faire partie d'une instanceb
Quelques exemples de cas expliqués
Input: ["1222", "22", "122"]
Output: "12122"
Dans l'exemple ci-dessus, ce dernier 22
est remplacé. Même si une partie de celui-ci fait partie d'une instance de b
, l'intégralité de celui-ci NE fait PAS partie de l'instance de b
. Puisque l'instance entière de a
ne fait pas partie d'une instance, b
elle est remplacée.
Input: ["123 ", "23", "12"]
Output: "112 "
Ce cas de test illustre le même cas que ci-dessus mais peut-être d'une manière un peu plus claire. Encore une fois, le 2
milieu fait à la fois partie d'une instance de a
ainsi qu'une partie d'une instance de b
, cependant, puisque tout a
ne fait pas partie de l'instance, b
il est toujours remplacé.
Input: ["Empty", "", "p"]
Output: "pEpmptpyp"
Dans le cas de test ci-dessus, la chaîne vide avant et après le p
n'est pas remplacée car la chaîne peut être considérée comme faisant entièrement partie de l'instance de p
.
Autres cas de test
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"
C'est une question pour code-golf donc la réponse la plus courte en octets l'emporte.