Avec une chaîne en entrée, imprimez une nouvelle chaîne avec chaque lettre poussée à droite par son index alphabet respectif.
Nous savons tous que A est un lent et Z une lettre rapide. Cela signifie que Z est décalé vers la droite de 25 espaces, que A ne se déplace pas du tout et que B est décalé de 1 espace.
Votre programme doit uniquement gérer les lettres majuscules de A à Z, et aucun autre caractère, aucun espace, aucun signe de ponctuation.
Notez que si 2 lettres ou plus tombent sur le même espace après le décalage, le dernier caractère sera utilisé. (Exemple: BA
-> A
)
Exemples
"AZ" -> "A Z"
"ABC" -> "A B C"
"ACE" -> "A C E"
"CBA" -> " A"
"HELLOWORLD" -> " E H DLL OLO R W"
Règles
- C'est du code-golf , donc le code le plus court parmi tous les octets de la langue gagne.
Les échappatoires standard sont interdites.
L'entrée doit être reçue sous forme de chaîne.
- Vous pouvez imprimer le résultat
stdout
ou renvoyer une chaîne. - Un seul espace et / ou nouvelle ligne de fin est autorisé.
- Vous pouvez également utiliser des lettres minuscules comme entrée ou sortie, mais n'utilisez que les deux cas.
Réponses:
Python 2 , 81 octets
Essayez-le en ligne!
la source
MATL , 11 octets
Essayez-le en ligne! Ou vérifiez tous les cas de test .
Explication
L'indexation MATL est basée sur 1. Cette astuce de golf est utilisée ici. Cet autre ne peut pas être utilisé car nous avons besoin d'une chaîne vide, pas d'un tableau numérique vide.
Considérez l'entrée
'ACE'
comme un exemple. Le contenu de la pile est affiché de bas en haut.la source
(
: nice builtinǝ
? Ah, mais cela ne semble pas se vectoriser sur les deuxième / troisième entrées0
s et s'affiche0
sous forme d'espace.R ,
14013312974 octetsSauvegardé une tonne d'octets portant une approche de valeur ASCII comme tout le monde. Triste, je n'y avais pas pensé avant :(
Essayez-le en ligne!
réponse originale, 129 octets:
Essayez-le en ligne!
génère une liste
o
d'espaces trop longue , puis itères
, en remplaçant les valeurso
par la valeur correcte et en mettant à jourF
la position du caractère le plus à droite. Ensuite, affiche les premiersF
élémentso
sans séparateurs.la source
05AB1E ,
2016 octets-4 octets grâce à Emigna
Essayez-le en ligne!
la source
ð₄×svyAuykN+ǝ}ðÜ
au moins. De même, y a-t-il une garantie que la chaîne d'entrée décalée ne dépasse pas 1000 caractères? Si non,g₂+ð×
devrait fonctionner.JavaScript (ES6), 81 octets
Un peu à partir de la réponse incomplète de Rick Hitchcock mais finalement assez différent.
Place les caractères dans leur index respectif d'un tableau vide, puis utilise array spread (
[...a]
) pour transformer les éléments manquants enundefined
permettantmap
de remplacer les éléments vides par un espace.Cas de test
Afficher l'extrait de code
la source
Perl 5, 42 octets
Code de 41 octets + 1 pour
-p
. Les\x1b
s dans le code sont des caractères d'échappement littéraux.S'appuie sur les séquences d'échappement ANSI pour positionner le curseur et ne fonctionne donc pas sur TIO.
Usage
la source
-F
): Essayez-le en ligne!Java (OpenJDK 8) ,
207191189183178 178174173170 octetsEssayez-le en ligne!
la source
Perl 5 , 41 + (
-F
) = 43 octetsEssayez-le en ligne!
Juste pour @lynn
la source
brainfuck , 127 octets
Essayez-le en ligne!
Explication
la source
Proton , 78 octets
Essayez-le en ligne!
69 octets en portant la solution de Lynn:
x=>{t=[]i=65for k:x{t+=[' ']*26t[ord(k)-i]=k;i--}"".join(t).rstrip()}
la source
Gelée , 20 octets
Essayez-le en ligne!
la source
Haskell ,
9088 octetsEssayez-le en ligne!
la source
Japt , 23 octets
Testez-le en ligne!
Première tentative, peut être améliorable ...
la source
V
place deU
: ethproductions.github.io/japt/…Wolfram Language (Mathematica) , 76 octets
Prend une liste de caractères en entrée. Cela génère des messages d'erreur qu'il est prudent d'ignorer.
J'ai inclus
Print
etCharacter
commande dans le pied de page du lien TIO pour la facilité d'utilisation. (Character
commande convertit simplement une chaîne en une liste de caractères)Essayez-le en ligne!
la source
LetterNumber
est intégré pour trouver la position d'une lettre dans l'alphabet? Putain de merde, c'est ridicule.J,
3731 octets[`]`(' '#~(1+>./)@])}(i.@#+65-~a.&i.)
-6 octets grâce à FrownyFrog
explication
La chose entière est un crochet:
Le côté droit calcule les nouveaux index pour toutes les lettres.
Le côté gauche utilise la forme de gérondif Modifier d'
}
abord pour créer une chaîne du nombre nécessaire d'espaces:(' '#~(1+>./)@])
. Et ensuite, placez chaque lettre de la chaîne d'origine dans son index approprié dans la chaîne tout espace.Essayez-le en ligne!
la source
(i.@#+65-~a.&i.)
->(i.@#+65-~3&u:)
->(i.@#-65-3&u:)
->(#\-66-3&u:)
(]' '#~1+>./)
Haskell , 88 octets
Essayez-le en ligne!
la source
Haskell, 88 octets
Essayez-le en ligne!
q
est la liste des indices finaux des lettres de la chaîne d'entrée (avec un décalage de65
). Parcourez tous les index (à partir de65
) et trouvez toutes les lettres correspondantes, en ajoutant un espace. Prenez le dernier.la source
C # (.NET Core) ,
11711084 octets7 octets sauvés grâce à Ayb4tu .
Type de retour modifié de
string
àchar[]
pour sauvegarder 26 octets.Essayez-le en ligne!
la source
t[i+((int)n[i]-65)]
àt[i+n[i]-65]
.char -> int
conversions sont implicites.C # .NET,
89 octets87 octets-2 octets grâce à Lan H.
Essayez-le en ligne!
la source
for
boucle pour -2 octets.Kotlin,
207 octets189 octets187 octets177 octetsSi l’espace au début devait rester, j’appellerais
trimEnd()
au lieu detrim()
.Non minée:
Kotlin n'est peut-être pas la meilleure langue pour le code-golf, mais j'ai aimé le défi et je voulais me familiariser davantage avec la bibliothèque standard de Kotlin.
la source
q / kdb +, 37 octets
Solution:
Exemples:
Explication:
Je pense que c'est la même idée que la solution J, calculez les index corrects pour le tableau en entrée, puis affectez-les à une chaîne vide de longueur correcte:
la source
Jq 1.5 , 91 octets
Étendu
Essayez-le en ligne!
la source
Charbon de bois , 16 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
la source
APL (Dyalog) , 26 octets
Préfixe anonyme lambda qui prend la chaîne d'entrée en argument et renvoie la chaîne de sortie. Suppose
⎕IO
( I ndex O rigin)0
, qui est la valeur par défaut sur de nombreux systèmes.Essayez-le en ligne!
{
…}
Lambda anonyme;⍵
représente l'argument≢⍵
décompte de l'argument⍳
que beaucoup ɩ ntegers (0 ... LengthOfArgument-1)(
…)+
Plus:⎕A⍳⍵
les indices de l'argument en majuscule Un alphabeti←
strore eni
(pour i ndices)⌈/
maximum (réduction)1+
ajoute un''↑⍨
prenez autant de caractères de la chaîne vide, en ajoutant des espaces si nécessaire⊢
céder que (sert à sépareri
de''
)⍵@i
modifier que les lettres d'argument à desi
indicesla source
SOGL V0.12 , 10 octets
Essayez-le ici!
Explication:
la source
Pyth ,
4438 octetsStriked out 44 est toujours 44 :(
Bloody Pyth débutant.
Sauvegardé 6 octets grâce à @Mr. Xcoder.
Essayez-le en ligne!
Comment?
la source
K*d+lz26Vlz K=XK-C@zN-65N@zN;.WqeHdPZK
.WqeKd K=PK;K
est remplacé par.W
(fonctionnel tandis) et ses arguments bien sûr, etFNrZlz
peut être remplacéVrZlz
, maisrZ...
signifieU...
, etU
est généré automatiquement parV
. AinsiFNrZlz
devientVlz
Lot,
418331 octetsFonctionne uniquement avec des lettres majuscules et prendra quelques secondes pour les chaînes plus longues.
J'ai appris de nouvelles astuces ici, la conversion de valeur de caractère en caractère ASCII à l'aide de
%=exitcodeAscii%
. Aussi,if defined
et "array" accéder en utilisantcall
. De plus, jouer au golf sur près de 100 octets était une bonne formation pour le golf en lot.Notez la fin de l'espace dans
set z=set
.la source
Ruby , 68 octets
Essayez-le en ligne!
la source
Assemblage IBM PC DOS 8088 ,
3433 octetsUngolfed (non assemblé):
Il s'agit d'un exécutable complet sous DOS qui extrait la chaîne de saisie de la ligne de commande et imprime la nouvelle version "plus rapide" à l'écran. Nécessite un minimum de DOS 1.0 ... espérons que vous avez au moins cela.
Sortie
la source
PHP,
127123 octetsEssayez-le en ligne
Devait corriger un bug qui ne produirait pas 'A' ...
la source