Есть небольшая импровизированная игра разминки, в которой вы устраиваетесь по кругу и отправляете молнии, застежки и зопы, указывая на человека и произнося следующее слово в последовательности, затем они делают то же самое, пока все не разогреются или без разницы.
Ваша задача - создать программу, которая дает следующее слово в последовательности, заданное входным словом. (Zip -> Zap -> Zop -> Zip) Поскольку существует множество различных способов произнесения этих трех слов и символов, которые могут быть добавлены к ним, ваша программа должна имитировать дублирование регистров и букв и содержать суффиксы.
Чтобы уточнить, ваш ввод будет один или несколько Z
s, затем один или несколько I
s, A
s или O
s (все одинаковые буквы), затем один или несколько P
s (все буквы до этой точки могут быть в смешанном регистре), а затем некоторый произвольный суффикс (который может быть пустым). Вы должны оставить последовательности Z
s и P
s, а также суффикс в том виде, в котором он был получен, но затем измените I
s на A
s, A
s на O
s или O
s на I
s, сохраняя регистр на каждом шаге.
Примеры тестовых случаев
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
. Суффикс может содержать что угодно.