Règles
Le programme doit recevoir une chaîne / un tableau de mots en entrée. Pour chaque mot de la chaîne / du tableau, il reconstruira le mot en prenant alternativement les caractères à l'avant et à l'arrière du mot.
12345 678 9 -> 15243 687 9.
Il réorganisera ensuite les mots de manière alternée entre le premier et le dernier mot apparaissant dans la chaîne.
15243 687 9 -> 15243 9 687
Enfin, il reconstruira la chaîne en plaçant les espaces, les tabulations et les sauts de ligne aux index où ils étaient initialement situés avant de produire le résultat.
12345 678 9-> 15243 687 9 -> 15243 9 687 -> 15243 968 7
La sortie doit être du même type de données que l'entrée.
Les échappatoires standard sont interdites
Exemples
Entrée:
Le renard brun rapide saute par-dessus le chien paresseux.
Production:
Teh d.ogq kucil yaz bnrwo tehf xoo rvej supmEntrée:
Le renard brun rapide saute par-
dessus le chien paresseux.
Sortie:
Teh d.ogq kucil yaz bnrwo
tehf xoo rvej supmEntrée:
Aflack
Sortie:
Akfcla
C'est le code-golf donc le code le plus court gagne
la source
Réponses:
Gelée ,
15 148 octetsUn énorme gain de 6 octets de Dennis (en déplaçant l'aplatissement et le moule à l'intérieur du lien 1, il n'est pas nécessaire de le diviser en deux et de la tête, et un aplatissement est déjà là pour qu'ils deviennent un!)
(à partir des deux lignes:,
żṚFœs2Ḣ
etÇ€ÇFṁ⁸
)Essayez-le en ligne!
Prend un tableau de mots et renvoie un tableau de nouveaux mots. (Le pied de page de TIO appelle cela et joint le tableau avec des espaces pour qu'il s'imprime bien.)
Remarque - la gestion d'une seule chaîne, la division des espaces de tabulations et des sauts de ligne, puis le réassemblage se sont avérés plutôt délicats; une fois que j'ai vu qu'une liste de mots était une option, les choses sont devenues beaucoup plus faciles!
Comment?
la source
JavaScript (ES6), 89 octets
Prend et sort un tableau de mots.
Tester
Afficher l'extrait de code
Version chaîne, 112 octets
Prend et sort une chaîne.
Tester
Afficher l'extrait de code
la source
Perl , 77 octets
74 octets de code + 3 octets pour les
-0pa
drapeaux.Essayez-le en ligne!
8 octets enregistrés grâce à un ancien @Ton Hospel de poste où je « volé »
s/../chop/reg
. (J'avais auparavant$c=y///c/2,s/.{$c}$//
)la source
Perl 6 , 84 octets
Entre et sort une liste de mots.
Comment ça fonctionne
À l'intérieur de la lambda, j'ai défini une autre lambda pour effectuer la torsion "en prenant alternativement les personnages de l'avant et de l'arrière ":
Cela fonctionne parce que le
xx
opérateur ressemble plus à une macro qu'à une fonction, en ce sens qu'il fournit une évaluation paresseuse magique.Puis dans la lambda principale:
Perl 6 , 87 octets
Il s'agit d'une variante de ce qui précède, qui entre et sort une chaîne - en préservant différents caractères d'espaces blancs.
la source
Haskell ,
115 95 93 9895 octetsAppelez avec
(!)=<<(f=<<).f.words $ "some string"
. Essayez-le en ligne!Merci à @nimi d'avoir souligné que j'avais mal lu le défi plus tôt.
La fonction
f
effectue la torsion sur une liste, elle peut donc être utilisée sur des chaînes (liste de caractères) et une liste de chaînes.a!b
insère l'espace blanc de la chaîneb
dans la chaînea
.(!)=<<(f=<<).f.words
équivaut à\s0 -> (concatMap f . f . words $ s0) ! s0
:la source