Zadanie
Napisz program lub funkcję, która podając trzy łańcuchy A, B, C
tworzy łańcuch wyjściowy, w którym rekurencyjnie podstawiono każde wystąpienie B
in . Rekurencyjne podstawianie oznacza powtarzanie podstawienia, w którym na każdym etapie wszystkie nie nakładające się wystąpienia in (wybrane zachłannie od lewej do prawej) są zastępowane przez, aż do momentu, gdy nie jest już zawarte w .A
C
B
A
C
B
A
Wejście wyjście
- Możesz użyć dowolnej domyślnej metody we / wy .
- Ciągi będą zawierać tylko drukowalne znaki ASCII (i mogą zawierać dowolny z nich).
B
nigdy nie będzie pustym ciągiemA
iC
może być.- Ciągi znaków należy traktować jako zwykły tekst, nie można na przykład traktować go
B
jako wzorca Regex. - Niektóre kombinacje wejść nigdy się nie zakończą. W takich przypadkach Twój program może zrobić wszystko.
Przypadki testowe
Są w formacie: 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}
)
Przykłady, które się nie kończą:
grow/ow/oow
loop/lo/lo
downpercase is down
((())())())/()/