Cel
To proste wyzwanie. Twoim celem jest rozszyfrowanie łańcucha poprzez zamianę każdej litery na następną literę tej samej sprawy, pozostawiając znaki inne niż litery bez zmian.
Wyjaśnienie krok po kroku
Pierwsza postać to
E
. Następna litera szukamy dużymi literami: toC
. Zamieniamy te postacie, co prowadzi doCdoE!
.Przechodzimy do następnej postaci: jest to
d
. Następnej litery szukamy małymi literami: too
. Zamieniamy te postacie, co prowadzi doCodE!
.Przechodzimy do następnej postaci:
d
właśnie tu się przeprowadziliśmy. Ignorujemy to, ponieważ zostało już przetworzone.Przechodzimy do następnej postaci: tę
E
właśnie przeniesiono tutaj w kroku # 1. Ignorujemy to, ponieważ zostało już przetworzone.Przechodzimy do następnej postaci: jest to
!
. Ignorujemy to, ponieważ to nie jest list.
Zasady
Możesz założyć, że łańcuch wejściowy składa się wyłącznie z drukowalnych znaków ASCII, w zakresie od 32 do 126.
Możesz napisać pełny program lub funkcję, która albo wydrukuje, albo zwróci wynik.
Jeśli ciąg wejściowy zawiera nieparzystą liczbę liter, ostatniej pozostałej litery nie można zamienić na inną i powinien pozostać na miejscu, bez względu na wielkość liter. Ta sama logika ma zastosowanie, jeśli ciąg zawiera parzystą liczbę liter, ale nieparzystą liczbę wielkich liter i nieparzystą liczbę małych liter.
To jest golf golfowy, więc wygrywa najkrótsza odpowiedź w bajtach. Standardowe luki są zabronione.
Przypadki testowe
Input : lLEhW OroLd!
Output: hELlO WorLd!
Input : rpGOZmaimgn uplRzse naC DEoO LdGf
Output: prOGRamming puzZles anD COdE GoLf
Input : eIt uqHKC RBWOO xNf ujPMO SzRE HTL EOvd yAg
Output: tHe quICK BROWN fOx juMPS OvER THE LAzy dOg
Input : NraWgCi: Nsas-eNEiTIsev rNsiTG!!
Output: WarNiNg: Case-sENsITive sTriNG!!
Niezbyt przypadkowe przypadki testowe:
Input : (^_^)
Output: (^_^)
Input : AWCTY HUOS RETP
Output: WATCH YOUR STEP
Input : hwn oeesd acsp nawyya
Output: who needs caps anyway
Input : SpMycaeIesKyBorekn
Output: MySpaceKeyIsBroken
Input : D's mroyr, Ivam. I'e faardi I act'n od htta.
Output: I'm sorry, Dave. I'm afraid I can't do that.