Мета
Це простий виклик. Ваша мета - розшифрувати рядок, поміняючи кожну букву на наступну букву того ж випадку, залишаючи символи без букви незмінними.
Покрокове пояснення
Перший персонаж - а
E
. Наступну букву шукаємо у верхньому регістрі: це aC
. Ми обміняємось цими символами, що призводить доCdoE!
.Переходимо до наступного персонажа: це a
d
. Наступний лист ми шукаємо в нижньому регістрі: це ao
. Ми обміняємось цими символами, що призводить доCodE!
.Переходимо до наступного персонажа: це те,
d
що ми щойно переїхали сюди. Ми ігноруємо це, оскільки воно вже оброблене.Переходимо до наступного символу: це те,
E
що було переміщено сюди на кроці №1. Ми ігноруємо це, оскільки воно вже оброблене.Переходимо до наступного персонажа: це a
!
. Ми ігноруємо це, бо це не лист.
Правила
Можна припустити, що рядок введення складається виключно з друкованих символів ASCII, в діапазоні 32 - 126.
Ви можете написати або повну програму, або функцію, яка або друкує, або повертає результат.
Якщо рядок введення містить непарну кількість букв, останній лист, що залишився, не може бути замінений на інший і повинен залишатися на місці, незалежно від його випадку. Ця ж логіка застосовується, якщо рядок містить парну кількість букв, але непарну кількість великих літер і непарну кількість малих літер.
Це код-гольф, тому найкоротша відповідь у байтах виграє. Стандартні лазівки заборонені.
Тестові справи
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!!
Не випадкові тестові випадки:
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.