Objectif
C'est un défi simple. Votre but est de déchiffrer une chaîne en échangeant chaque lettre avec la lettre suivante du même cas, tout en laissant les caractères non-lettre inchangés.
Explication pas à pas
Le premier caractère est un
E
. Nous cherchons la lettre suivante en majuscule: c’est aC
. Nous échangeons ces caractères, ce qui conduit àCdoE!
.Nous passons au caractère suivant: c’est un
d
. Nous cherchons la lettre suivante en minuscule: c’est ao
. Nous échangeons ces caractères, ce qui conduit àCodE!
.Nous passons au caractère suivant: il s’agit de celui
d
que nous venons de déplacer ici. Nous l'ignorons car il a déjà été traité.Nous passons au caractère suivant: il s’agit de celui
E
qui a été déplacé ici à l’étape 1. Nous l'ignorons car il a déjà été traité.Nous passons au caractère suivant: c’est un
!
. Nous l'ignorons, car ce n'est pas une lettre.
Règles
Vous pouvez supposer que la chaîne d'entrée est composée exclusivement de caractères ASCII imprimables, compris entre 32 et 126.
Vous pouvez écrire un programme complet ou une fonction qui imprime ou renvoie le résultat.
Si la chaîne d'entrée contient un nombre impair de lettres, la dernière lettre restante ne peut pas être remplacée par une autre et doit rester en place, quelle que soit sa casse. La même logique s'applique si la chaîne contient un nombre pair de lettres, mais un nombre impair de lettres majuscules et un nombre impair de lettres minuscules.
C'est du code-golf, donc la réponse la plus courte en octets est gagnante. Les échappatoires standard sont interdites.
Cas de test
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!!
Cas de test pas si aléatoires:
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.