Задание
Напишите программу или функцию, которая с учетом трех строк A, B, Cсоздает выходную строку, в которой каждый экземпляр Bin Aбыл рекурсивно заменен C. Под рекурсивной подстановкой понимается повторение подстановки, когда на каждом шаге все неперекрывающиеся экземпляры Bin 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
((())())())/()/