Есть небольшая импровизированная игра разминки, в которой вы устраиваетесь по кругу и отправляете молнии, застежки и зопы, указывая на человека и произнося следующее слово в последовательности, затем они делают то же самое, пока все не разогреются или без разницы.
Ваша задача - создать программу, которая дает следующее слово в последовательности, заданное входным словом. (Zip -> Zap -> Zop -> Zip) Поскольку существует множество различных способов произнесения этих трех слов и символов, которые могут быть добавлены к ним, ваша программа должна имитировать дублирование регистров и букв и содержать суффиксы.
Чтобы уточнить, ваш ввод будет один или несколько Zs, затем один или несколько Is, As или Os (все одинаковые буквы), затем один или несколько Ps (все буквы до этой точки могут быть в смешанном регистре), а затем некоторый произвольный суффикс (который может быть пустым). Вы должны оставить последовательности Zs и Ps, а также суффикс в том виде, в котором он был получен, но затем измените Is на As, As на Os или Os на Is, сохраняя регистр на каждом шаге.
Примеры тестовых случаев
zip ==> zap
zAp ==> zOp
ZOP ==> ZIP
ZiiP ==> ZaaP
ZZaapp ==> ZZoopp
zzzzOoOPppP ==> zzzzIiIPppP
Zipperoni ==> Zapperoni
ZAPsky ==> ZOPsky
ZoPtOn ==> ZiPtOn
zipzip ==> zapzip
zapzopzip ==> zopzopzip
zoopzaap ==> ziipzaap
Правила и примечания
- Вы можете использовать любую удобную кодировку символов для ввода и вывода, при условии, что она поддерживает все буквы ASCII и что она была создана до этого вызова.
- Вы можете предположить, что входное слово - это некоторый вариант Zip, Zap или Zop. Все остальные входы приводят к неопределенному поведению.
- Допустимые входные данные будут полностью соответствовать регулярному выражению
Z+(I+|A+|O+)P+.*(в смешанном случае)
- Допустимые входные данные будут полностью соответствовать регулярному выражению
Счастливого гольфа!
zи первыми p. Суффикс может содержать что угодно.