Цель
Это простой вызов. Ваша цель - расшифровать строку, поменяв каждую букву следующей буквой в том же регистре, не изменяя буквенные символы.
Пошаговое объяснение
Первый персонаж - это
E
. Мы ищем следующую букву в верхнем регистре: этоC
. Мы меняем этих персонажей, что приводит кCdoE!
.Переходим к следующему персонажу: это
d
. Мы ищем следующую букву в нижнем регистре: этоo
. Мы меняем этих персонажей, что приводит кCodE!
.Мы переходим к следующему персонажу: это то,
d
что мы только что переехали сюда. Мы игнорируем это, потому что это уже было обработано.Мы переходим к следующему персонажу: это то,
E
что было перемещено здесь на шаге № 1. Мы игнорируем это, потому что это уже было обработано.Переходим к следующему персонажу: это
!
. Мы игнорируем это, потому что это не письмо.
правила
Можно предположить, что входная строка состоит исключительно из печатных символов 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.