Étant donné une liste ou une chaîne délimitée, affichez une liste ou une chaîne délimitée avec le premier caractère de chaque mot un mot plus tard.
Pour ce défi, un «mot» se compose uniquement de tous les caractères ASCII imprimables, à l'exception de l'espace, de la nouvelle ligne et du caractère de tabulation.
Par exemple, prenez la chaîne "Bonjour, monde!" (délimité par des espaces):
1. String
"Good afternoon, World!"
2. Get the first characters:
"[G]ood [a]fternoon, [W]orld!"
3. Move the characters over. The character at the end gets moved to the beginning.
"[W]ood [G]fternoon, [a]orld!"
4. Final string
"Wood Gfternoon, aorld!"
C'est le code-golf , donc le code le plus court gagne!
Cas de test:
Input -> output (space-delimited)
"Good afternoon, World!" -> "Wood Gfternoon, aorld!"
"This is a long sentence." -> "shis Ts i aong lentence."
"Programming Puzzles and Code Golf" -> Grogramming Puzzles Pnd aode Colf"
"Input -> output" -> "onput I> -utput"
"The quick brown fox jumped over the lazy dog." -> "dhe Tuick qrown box fumped jver ohe tazy log."
"good green grass grows." -> "good green grass grows."
Réponses:
05AB1E ,
76 octetsExplication:
Essayez-le en ligne!
la source
Japt ,
111098 octetsProfite de l'habillage d'index et de l'indexation négative de Japt.
Essayez-le en ligne
Explication
la source
¸
h
était une bonne idée. Je suis venu avec£g´Y ¯1 +XÅ
qui peut devenir £ XhUg´Y ¯1 en utilisant votre technique.Haskell , 43 octets
Essayez-le en ligne! Utilise une liste de chaînes pour l'entrée et la sortie.
Se souvient de la première lettre du mot précédent
p
et en fait récursivement la première lettre du mot actuel lors de l'envoi de la nouvelle première lettre dans la chaîne. La première lettre précédente est initialisée en tant que première lettre du dernier mot.la source
Rubis,
857763 octetsJe suis sûr que cela pourrait être beaucoup plus court.
Edit: Merci pour @manatwork pour collecter -> carte
la source
.collect
et.each
par.map
.-p
drapeau (+1 octet) eti=-2;gsub(r=/\b\w/){$_.scan(r)[i+=1]}
pour le golf ultimeGelée , 6 octets
Essayez-le en ligne!
Merci à Dennis d' avoir lu les règles mieux que moi, cela renvoie une liste de mots. Cela ne fonctionne pas comme un programme complet.
la source
CJam ,
12109 octets1 octet enregistré grâce à jimmy23013
Prend la saisie sous forme de liste de mots.
Essayez-le en ligne!
Explication
la source
)o
pour1m>
.V , 7 octets
Essayez-le en ligne!
Explication:
la source
JavaScript (ES6), 46 octets
Profite du fait que
slice(-1)
renvoie le dernier élément d'un tableau.Fragment
Afficher l'extrait de code
la source
Vim,
16, 9 octets7 octets enregistrés grâce à @Wossname!
Prend un mot par ligne, par exemple
Je pense que cela devrait être correct, car la prise de l'entrée en tant que liste est autorisée.
Essayez-le en ligne!
la source
^vGdjPGd$ggP
(où ^ v est la combinaison de touches [contrôle + v], assurez-vous simplement de commencer avec le curseur en haut à gauche et d'être en mode commande)dd -> D
,gg -> }
) Merci pour le conseil!> <> ,
4445 octetsSuppose des mots séparés par des espaces.
Correction par Aaron ajouté 1 octet
la source
Python 2, 74 octets
Essayez-le en ligne
-5 octets, grâce à @Rod
la source
S[:-1]
peut être raccourciS
; zipper des listes de différentes longueurs tronque automatiquement celle qui est la plus longueHaskell , 50 octets
L'entrée et la sortie sont des listes de mots.
la source
f=
.PHP, 62 octets
la source
C #,
7877 octetsCompile en une
Func<List<string>, IEnumerable<string>>
version complète / formatée:la source
Brachylog , 12 octets
Essayez-le en ligne!
Explication
la source
R,
7270 octetsfunction(x)paste0(substr(x,1,1)[c(y<-length(x),2:y-1)],substring(x,2))
Essayez-le en ligne
2 octets enregistrés grâce à Giuseppe.
L'entrée et la sortie sont des listes. Prend une sous-chaîne composée des premières lettres, fait défiler la dernière vers l'avant et la colle avec une sous-chaîne du reste de chaque mot. L'étape du cyclisme est un tueur, mais je ne peux pas trouver un moyen de le réduire davantage.
la source
2:y-1
place de1:(y-1)
puisque:
a priorité sur-
ce qui vous fait économiser 2 octets.substring
comme argument de fonctionPython 2 + Numpy, 104 octets
la source
APL (Dyalog) , 6 octets
Prend la matrice avec un mot par colonne.
Essayez-le en ligne!
¯1∘⌽
tourner d'un pas vers la droite@
à1
ligne 1la source
Mathematica, 59 octets
Essayez-le en ligne!
Prend et renvoie une liste de mots.
Si vous préférez prendre et renvoyer des chaînes, cela fonctionne pour 87 octets:
la source
Rétine,
463731 octetsEssayez-le en ligne
Toujours en cours de golf ..
la source
(.*)
et$3
?+
dans la première ligne vers un,*
vous tournez(.* .)
dans la troisième ligne vers(.*)
-2 octets. Essayez-le en ligne!kdb +,
2522 octetsSolution:
Exemple:
Explication:
Supplémentaire:
Une version qui prend une chaîne régulière (37 octets):
la source
Perl 5 , 40 octets
39 octets de code + 1 pour
-a
Essayez-le en ligne!
la source
Rétine ,
2520 octetsLe nombre d'octets suppose un codage ISO 8859-1.
Essayez-le en ligne!
L'entrée et la sortie sont séparées par un saut de ligne. La suite de tests effectue la conversion d'E / S nécessaire à partir de la séparation d'espace.
la source
Mathematica, 134 octets
la source
Pyth, 12 octets
Prend une liste de mots et renvoie une liste de mots.
Essayez!
la source
Java (OpenJDK 8) , 97 octets
Essayez-le en ligne!
la source
C,
10677 octets-29 octets de scottinet
Modifie la chaîne sur place.
Non golfé:
la source
J , 34 octets
Essayez-le en ligne!
la source
Husk , 11 octets
Entrée et sortie sous forme de liste de chaînes, essayez-le en ligne!
(L'en-tête transforme simplement l'entrée en une liste de mots et joint la liste de sortie avec des espaces.)
Explication
Alternative, 11 octets
Essayez-le en ligne!
la source
AWK , 63 octets
Essayez-le en ligne!
Il semble qu'il devrait y avoir un moyen de réduire la redondance, mais je ne le vois pas.
Remarque: la liaison TIO dispose de 4 octets supplémentaires pour permettre l'entrée multiligne.
la source