Description du défi
Faites défiler toutes les lettres de la première partie de l'alphabet dans un sens et les lettres de la seconde moitié de l'alphabet dans l'autre. Les autres personnages restent en place.
Exemples
1: Bonjour tout le monde
Hello_world //Input
Hell ld //Letters from first half of alphabet
o wor //Letters from second half of alphabet
_ //Other characters
dHel ll //Cycle first letters
w oro //Cycle second letters
_ //Other characters stay
dHelw_oroll //Solution
2: codegolf
codegolf
c deg lf
o o
f cde gl
o o
focdeogl
3 .: chaîne vide
(empty string) //Input
(empty string) //Output
Contribution
Chaîne que vous devez faire pivoter. Peut être vide. Ne contient pas de nouvelles lignes.
Sortie
Chaîne d'entrée pivotée,
retour à la ligne autorisé autorisé Peut être écrit à l'écran ou renvoyé par une fonction.
Règles
- Aucune échappatoire autorisée
- C'est le code-golf, donc le code le plus court en octets pour résoudre le problème l'emporte
- Le programme doit renvoyer la bonne solution
Réponses:
MATL , 29 octets
Essayez-le en ligne!
Explication
la source
Rétine , 55 octets
Essayez-le en ligne!
Utilise deux étapes de tri pour faire pivoter séparément la première et la seconde moitié des lettres.
la source
05AB1E ,
444342 octetsExplication
Générez une liste des lettres de l'alphabet des deux cas.
['Aa','Bb', ..., 'Zz']
Divisé en 2 parties et stockez une copie dans le registre.
Extrait les lettres de l'entrée qui font partie de la 1ère moitié de l'alphabet, faites -le pivoter et stocker dans X .
Extrait les lettres de l'entrée qui font partie de la 2ème moitié de l'alphabet, faites -le pivoter et stocker dans Y .
Boucle principale
Essayez-le en ligne!
Remarque: le début
Ð
peut être omis dans 2sable pour une solution de 41 octets.la source
<s>44</s>
ressemble toujours à 44.Javascript (ES6),
155142138 octetsEdit: enregistré
34 octets en utilisantunshift()
(inspiré par la réponse d'edc65)Comment ça marche
La
R
fonction prend une méthode de tableau comme paramètrem
:Il est d'abord utilisé avec la
push
méthode pour stocker les caractères extraits dansa[]
(première moitié de l'alphabet) etb[]
(seconde moitié de l'alphabet). Une fois que ces tableaux ont été tournés,R()
est appelé une deuxième fois avec lashift
méthode pour injecter les nouveaux caractères dans la chaîne finale.D'où la syntaxe légèrement inhabituelle:
R`push`
etR`shift`
.Démo
la source
a.unshift(a.pop(b.push(b.shift())))
CJam , 41 octets
Essayez-le en ligne!
Utilise une approche similaire à ma réponse de mélange de voyelles .
la source
Python, 211 octets
Le mieux que je puisse faire. Prend la chaîne de STDIN et imprime le résultat dans STDOUT.
alternative avec 204 octets, mais imprime malheureusement une nouvelle ligne après chaque caractère:
la source
Python 2, 149 octets
la source
JavaScript (ES6), 144
Utiliser la
parseInt
base 36 pour séparer la première moitié, la seconde moitié et les autres. Pour tout personnagec
, j'évaluey=parseInt(c,36)
pour quec '0'..'9' -> y 0..9
c 'a'..'m' or 'A'..'M' -> y 10..22
c 'n'..'z' or 'N'..'Z' -> y 23..35
c any other -> y NaN
y=parseInt(c,36), x=(y>22)+(y>9)
Donne doncx==1
pour la première moitié,x==2
pour la seconde moitié etx==0
pour tout autre (commeNaN
> tout nombre est faux)Première étape: la chaîne d'entrée est mappée sur un tableau de 0,1 ou 2. Pendant ce temps, tous les caractères de la chaîne sont ajoutés à 3 tableaux. À la fin de cette première étape, les réseaux 1 et 2 sont tournés dans des directions opposées.
Deuxième étape: le tableau mappé est analysé, reconstruisant une chaîne de sortie en prenant chaque caractère des 3 tableaux temporaires.
Moins golfé
Tester
la source
Perl. 53 octets
Comprend +1 pour
-p
Exécutez avec l'entrée sur STDIN:
drotate.pl
:la source
Python,
142133octetsUne meilleure variation sur le thème:
non golfé:
solution antérieure:
non golfé:
la source
Rubis, 89 octets
la source
PHP, 189 octets
Assez difficile à jouer au golf ... Voici ma proposition:
la source