Завдання
Напишіть програму або функцію, яка з трьох рядків A, B, C
створює вихідний рядок, де кожен екземпляр B
в A
рекурсивно заміщений C
. Рекурсивно заміщення означає повторення заміни, коли на кожному кроці всі неперекриваються екземпляри B
в A
(вибрані жадібно зліва направо) замінюються на, C
поки B
більше не містяться в A
.
Введення-виведення
- Ви можете використовувати будь-який із методів за замовчуванням для вводу / виводу .
- Рядки містять лише друковані символи ASCII (і можуть містити будь-який з них).
B
ніколи не буде порожнім рядком, хочаA
іC
може бути.- Рядки слід вважати простим текстом, ви не можете, наприклад, трактувати
B
як шаблон Regex. - Деякі комбінації входів ніколи не припиняться. У цих випадках ваша програма може робити все, що завгодно.
Тестові справи
Вони у форматі: 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}
)
Приклади, які не припиняються:
grow/ow/oow
loop/lo/lo
downpercase is down
((())())())/()/