À travers l'alphabet
Dans ce défi, vous avez du mal à vous souvenir des lettres de l'alphabet. Pour contourner cela, vous montez et descendez l'alphabet jusqu'à ce que vous arriviez à la lettre.
Parce que vous voulez que votre code soit portable, vous l'écrirez avec des blocs de lettres. Vous avez un nombre limité de blocs de lettres car la plupart d'entre eux ont été volés, vous devez donc vous assurer que votre code est aussi court que possible.
Exemples
Les paires d'entrée / sortie sont séparées par une ligne vierge:
Ac
ABc
Ad
ABcd
fA
fedCBA
adB
abcdcB
Hello, World!
HGfefghijkllmno, WVUTSrqpopqrqponmlkjihgfed!
Défi
Votre objectif est de chaîner les lettres adjacentes avec toutes les lettres intermédiaires de l'alphabet ( A-Za-z
) entre elles. Si la capitalisation diffère, la capitalisation doit être transformée au milieu. Si la capitalisation ne peut pas être transformée de manière égale au milieu, elle se décompose après le milieu. Si un caractère n'est pas un caractère alphabétique, aucune transformation ne doit être effectuée.
Gagnant
C'est le code-golf donc le code le plus court en octets gagne!
-10% de bonus: si vos chaînes de code sont des chiffres
adB
devrait se transformerabcdCB
parce que c est au milieu de d et b.Réponses:
Pyth, 40 octets
Essayez-le en ligne.
la source
Python 2,
303291288282276261253 octetsIl s'agit d'un algorithme complètement différent de celui de Hannes Karppila, et après beaucoup de golf, j'ai réussi à améliorer considérablement la longueur. Je pense que cet algorithme pourrait également permettre l'un des codes les plus courts dans d'autres langues, en particulier les langues avec des boucles do-while et des fonctions de signalisation intégrées. Des suggestions pour de nouvelles améliorations sont les bienvenues. (Quelque chose me dit que toute la boucle intérieure devrait être réécrite comme une compréhension de liste.)
la source
JavaScript (ES6),
198197194 octetsUsage
Explication
la source
\w
échouera avec les chiffres. Essayez '09'a>b?a-b:b-a
... et il existe d'autres astuces «standard» pour raccourcir le javascript. Avec votre méthode d'interpolation, vous pourriez battre mon score. Consultez les conseils sur ce siteJavaScript ES6, 168 (186-10%)
176 193Modifier modifié pour obtenir le bonus de 10%
Testez l'exécution de l'extrait ci-dessous à l'aide d'un navigateur compatible EcmaScript 6 (j'utilise FireFox)
la source
Python 2, 349 octets
C'est beaucoup trop long, mais au moins c'est le premier.
la source