Gol
Este es un desafío simple. Su objetivo es descifrar una cadena intercambiando cada letra con la siguiente letra del mismo caso, sin modificar los caracteres que no sean letras.
Explicación paso a paso
El primer personaje es a
E
. Buscamos la siguiente letra en mayúscula: es aC
. Intercambiamos estos caracteres, lo que conduce aCdoE!
.Avanzamos al siguiente personaje: este es un
d
. Buscamos la siguiente letra en minúscula: es ao
. Intercambiamos estos caracteres, lo que conduce aCodE!
.Avanzamos al siguiente personaje: este es el
d
que acabamos de mudar aquí. Lo ignoramos porque ya ha sido procesado.Avanzamos al siguiente personaje: este es el
E
que se movió aquí en el paso 1. Lo ignoramos porque ya ha sido procesado.Avanzamos al siguiente personaje: este es un
!
. Lo ignoramos, porque no es una carta.
Reglas
Puede suponer que la cadena de entrada está hecha exclusivamente de caracteres ASCII imprimibles, en el rango de 32 a 126.
Puede escribir un programa completo o una función, que imprime o devuelve el resultado.
Si la cadena de entrada contiene un número impar de letras, la última letra restante no se puede intercambiar con otra y debe permanecer en su lugar, sin importar su caso. La misma lógica se aplica si la cadena contiene un número par de letras, pero un número impar de letras mayúsculas y un número impar de letras minúsculas.
Este es el código de golf, por lo que gana la respuesta más corta en bytes. Las lagunas estándar están prohibidas.
Casos de prueba
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!!
Casos de prueba no tan aleatorios:
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.