Étant donné une lettre de l'alphabet anglais, votre tâche consiste à créer un alphabet semi-diagonal à l'entrée.
Comment construire un alphabet semi-diagonal?
Brève description : Tout d’abord, vous prenez la position de la lettre dans l’alphabet P
( P
indexé 1 ici). Ensuite, vous imprimez chaque lettre jusqu'à l'entrée (incluse) sur une ligne, précédée de P-1
et répétez cette P
fois fois, entrelacement d'espaces.
Exemples :
Étant donné que
F
votre programme devrait produire:UNE BB CCC DDDD EEEEE FFFFFF
Étant donné que
K
votre programme devrait produire:UNE BB CCC DDDD EEEEE FFFFFF GGGGGGG HHHHHHHH IIIIIIIII JJJJJJJJJJ KKKKKKKKKKK
Étant donné que
A
votre programme devrait produire:A
Règles
Vous pouvez choisir des caractères minuscules ou majuscules, mais cela devrait être cohérent.
Vous pouvez avoir des espaces superflus comme suit:
- Un espace de début cohérent (sur chaque ligne).
- Une ou plusieurs nouvelles lignes.
- Espaces de fuite.
L'entrée et la sortie peuvent être prises avec n'importe quel moyen standard, et des failles par défaut s'appliquent.
Vous êtes autorisé à générer une liste de lignes à la place, à condition de fournir également la version ascii-art .
C'est du code-golf , donc le code le plus court en octets gagne!
Inspiré par ce défi .
Réponses:
Python 3 , 59 octets
Essayez-le en ligne!
Python 3 , 61 octets
Essayez-le en ligne! (lien vers la jolie version imprimée)
la source
Python 2 ,
636159 octets-2 octets grâce à Rod. -2 octets grâce à Felipe Nardi Batista.
Essayez-le en ligne!
la source
C, 89 octets
Essayez-le en ligne!
la source
PowerShell ,
4542 octetsEssayez-le en ligne!
Prend l'entrée sous forme de caractère littéral, puis parcourt les majuscules jusqu'à ce point, chaque itération précédant le nombre d'espaces, puis l'hybride caractère / espace.
3 octets sauvés grâce à TessellatingHeckler.
la source
"$args"
tellement joué au golf , ce qui ne fonctionnerait pas ici, j'ai oublié la[0]
méthode. Haha.JavaScript (ES6), 85 octets
Fonctionne en minuscule pour les entrées et les sorties. Sort un espace de début et un espace de fin sur chaque ligne.
Démo
Afficher l'extrait de code
la source
`${s} `
peut être remplacé par(s+"")
pour économiser un octet(s+" ")
, mais c'est tout aussi long.APL (Dyalog) , 26 octets
Invite le caractère scalaire. Imprime la liste des lignes.
Essayez-le en ligne! (a la version d'art ASCII à un octet supplémentaire)
⎕
invite pour l'entrée⎕A⍳
trouver ɩ ndex dans Un alphabet⍳
d' abord que de nombreux ɩ ntegers(
…)¨
Applique la fonction tacite suivante à chacun:⊃∘⎕A
choisissez la lettre lettre argument'th du A lphabet⊢⍴
remodeler cycliquement à la longueur de l'argument' ',¨⍨
ajouter un espace à chacun⍴∘'',
ajoute une chaîne de longueur d'argument (complétée d'espaces)∊
ε nlist (aplatir)La version d'art ASCII a juste un
↑
à l'extrême gauche; mélanger la liste des chaînes dans la table des caractères.la source
Perl 5 , 31 octets
Code de 30 octets + 1 pour
-l
.Essayez-le en ligne!
la source
say
place du-l
drapeau: Essayez-le en ligne!-E
/-M5.01
, j'ai utilisésay
beaucoup par le passé, et probablement du fait qu'ilsay
s'agit d'une alternative àprint
un challenge source restreinte ou similaire peut-être, mais pour le bien de -3, je garderai tel quel pour le moment. Voir cette méta post pour un argument juste . Appréciez l'entrée cependant!Dyalog APL, 38 octets
Essayez-le en ligne!
Comment?
⎕A↑⍨
- prendre l'alphabet jusqu'à⎕A⍳⍵
- le caractère d'entrée¨
- pour chaque personnage⍵,' '
- prendre le caractère et un espace(...)⍴
- remodeler à2×y←⎕A⍳⍵
- deux fois l'indice du caractère dans l'alphabet(y/' ')
- et précéder les espaces d'index de caractères↑
- puis aplatirla source
APL (Dyalog Classic) , 26 octets
Essayez-le en ligne!
Explication
la source
{}
, à le remplacer⍵
par⎕
, et à prétendre qu'il s'agit d'un "programme complet" plutôt que d'une fonction. Cela ferait de votre solution la meilleure (jusqu'à présent).V ,
28, 26, 25, 23 octets (en compétition )Essayez-le en ligne!
Notez que bien que je prévoie d’ajouter certaines fonctionnalités depuis longtemps, c'est ce défi qui m'a convaincu de le faire.
La sortie contient un espace de début sur chaque ligne et un retour à la fin.
Hexdump:
Explication:
la source
05AB1E , 10 octets
Essayez-le en ligne!
-2 grâce à Adnan .
Ajoutez
»
pour le faire imprimer sur des lignes séparées.la source
<
car un seul espace cohérent est acceptable.A¹¡н«ðâƶāú
devrait fonctionner pendant 10 octets¹¡
fera en sorte que cela ne fonctionne pas ... oh, c'est pourquoi il y en a une«
. : pR,
9488 octets-6 octets grâce à Giuseppe
Ungolfed:
la source
f
s’agit d’une ligne, et utilisermatch
au lieu dewhich
sauvegarder un octet.Haskell,
5244 octetsRetourne une liste de lignes.
Essayez-le en ligne!
Edit: @jferard: trois octets sauvegardés. Merci!
la source
f k=[tail$[" ",s:" "]>>=(['A'..s]>>)|s<-['A'..k]]
tail$
.JavaScript (ES8), 92 octets
Utilise des lettres minuscules. Les lignes ont un espace de début et un espace de fuite. Retourne un tableau de lignes.
Test Snippet
la source
Husk , 13 octets
Prend un caractère entre guillemets comme argument de ligne de commande, imprime le résultat dans STDOUT. Essayez-le en ligne!
Explication
J'exploite la façon dont Husk imprime les listes de listes de chaînes: joignez les listes internes avec des espaces et les listes externes avec des lignes.
la source
05AB1E ,
151413 octetsSauvé 1 octet grâce à Adnan
Essayez-le en ligne! ou la version d'art Ascii
Explication
la source
A¹¡н«
au lieu deADIk>£
devrait fonctionnerA¹¡н
mais je n'ai pas envisagé«
de recevoir la dernière lettre, donc cela ne suffisait pas: PAPL (Dyalog Unicode) , SBCS 22 octets
Essayez-le en ligne!
Utilisations
⎕io←1
. Imprime un espace de début, ce qui est autorisé.la source
QBasic,
797472 octetsMerci à Taylor Scott pour les économies d’octets (deux fois!)
Utilise les majuscules. La saisie se fait par pression de touche et n’est pas renvoyée à l’écran.
Explication
Nous passons en boucle
i
de la1
position de la lettre limite dans l'alphabet (base 1). Pour chacuni
, nous passons à la colonnei
de l'écran en utilisantTAB
; puis,i
parfois, nous imprimons lai
ième lettre de l'alphabet suivie d'un espace.la source
INPUT$(1)
commande en remplacement direct de la variablez$
pour un delta de -2 octetsJapt
-R
,24231715 octetsSort un tableau, inclut une nouvelle ligne principale et un espace de début et de fin sur chaque ligne.
Essaye-le
la source
Charbon de bois , 18 octets
Essayez-le en ligne!
la source
E…·?θ⁺× κ⪫× κι
le travail serait effectué sur 14 octets.?
y entrer . Ce devrait être à laA
place, je pense. Oh, attends, ohhhhh je vois ce que tu veux dire.Braingolf , 65 octets
Essayez-le en ligne!
Minuscule.
Contient 1 espace de fin sur chaque ligne et une nouvelle ligne à la fin de la sortie.
la source
C # (.NET Core) , 103 octets
Essayez-le en ligne!
la source
JavaScript,
10294 octets2 octets économisés grâce à Neil
la source
Retina , 51 octets
Essayez-le en ligne! Explication:
Dupliquer la (première) lettre.
Faites-le pivoter de 1 dans l'alphabet ou supprimez-le s'il s'agit d'un doublon
A
. Continuez à dupliquer et à faire pivoter jusqu’à ce que nous ayons dupliquéA
. À ce stade, la suppression annule la duplication et la boucle est terminée.Remplacez chaque lettre par une ligne avec la lettre rembourrée des deux côtés.
Insérez des lettres en double entre toutes les paires d'espaces de remplissage à la droite des lettres existantes.
la source
Haskell , 57 octets
Essayez-le en ligne!
la source
Charbon de bois , 15 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
Si un remplissage supplémentaire était légal, cela fonctionnerait pour 14 octets:
Essayez-le en ligne! Le lien est vers la version verbeuse du code.
la source
Mathematica, 70 octets
minuscule
affiche une liste
thanx @ ngenisis pour les corrections
For ascii-art version place
Column@
at the beginningla source
Excel VBA, 72 Bytes
Anonymous VBE immediate window function that takes input from cell
A1
and outputs to the VBE immediate windowla source
Pyth, 17 bytes
Try it here (pretty print version).
How does this work?
hxG
- Takes the index of the input in the lowercase alphabet.<G
- Trims every character after the input from the alphabet..e
- Enumerated Map. Maps over the trimmed alphabet with the indexes ask
and the letters asb
.*kd
- Appendk
spaces.+bd
-b
+ a space (the current letter + space).*...hk
- Repeatk+1
times.+(...)(...)
- Concatenate.la source
.e+*kdjd*bhk<GhxG
as 17 bytes as well.e+*kd*+bdhkhcGQ
C++ (gcc), 164 bytes
My first attempt after a long time lurking!
Ungolfed code below:
Try it online!
la source