Jest trochę ulepszonej gry rozgrzewkowej, w której ustawiasz się w kręgu i wysyłasz zamki błyskawiczne, zaps i zopsy, wskazując na osobę i wypowiadając następne słowo w sekwencji, a następnie robią to samo, dopóki wszyscy się nie rozgrzeją lub cokolwiek.
Twoim zadaniem jest stworzenie programu, który poda kolejne słowo w sekwencji, podając słowo wejściowe. (Zip -> Zap -> Zop -> Zip) Ponieważ istnieje wiele różnych sposobów wypowiedzenia tych trzech słów i sprytów, które można do nich dodać, twój program powinien naśladować powielanie liter i liter oraz nosić sufiksy.
W celu rozwinięcia, dane wejściowe będą wynosić jeden lub więcej Zs, następnie jeden lub więcej Is, As lub Os (cała ta sama litera), następnie jeden lub więcej Ps (wszystkie litery do tego momentu mogą być pisane wielkimi literami), po których następuje jakiś dowolny sufiks (który może być pusty). Należy pozostawić serie ZS i PS, jak również przyrostek dokładnie tak odbierane, ale następnie zmień IS do AS, AS do OS lub OS, aby Is, przy zachowaniu sprawy na każdym kroku.
Przykładowe przypadki testowe
zip ==> zap
zAp ==> zOp
ZOP ==> ZIP
ZiiP ==> ZaaP
ZZaapp ==> ZZoopp
zzzzOoOPppP ==> zzzzIiIPppP
Zipperoni ==> Zapperoni
ZAPsky ==> ZOPsky
ZoPtOn ==> ZiPtOn
zipzip ==> zapzip
zapzopzip ==> zopzopzip
zoopzaap ==> ziipzaap
Zasady i uwagi
- Możesz użyć dowolnego wygodnego kodowania znaków dla danych wejściowych i wyjściowych, pod warunkiem, że obsługuje on wszystkie litery ASCII i że został utworzony przed tym wyzwaniem.
- Możesz założyć, że słowo wejściowe jest odmianą Zip, Zap lub Zop. Wszystkie pozostałe dane wejściowe powodują niezdefiniowane zachowanie.
- Prawidłowe dane wejściowe będą w pełni pasować do wyrażenia regularnego
Z+(I+|A+|O+)P+.*(w przypadku mieszanym)
- Prawidłowe dane wejściowe będą w pełni pasować do wyrażenia regularnego
Wesołego golfa!
za pierwszymi p. Sufiks może zawierać wszystko.