Étant donné une chaîne dont la longueur est divisible par 4, faites un triangle comme illustré ci-dessous.
Si la chaîne est abcdefghijkl
, alors le triangle serait:
a
b l
c k
defghij
Si la chaîne est iamastringwithalengthdivisiblebyfour
, alors le triangle serait:
i
a r
m u
a o
s f
t y
r b
i e
n l
gwithalengthdivisib
Si la chaîne est thisrepresentationisnotatriangle
, alors le triangle serait:
t
h e
i l
s g
r n
e a
p i
r r
esentationisnotat
Remarques
- La chaîne ne sera composée que de caractères de
a
àz
. - Les espaces blancs en début / fin et les nouvelles lignes sont autorisés tant que la forme n'est pas rompue.
- Une liste de chaînes en sortie est autorisée.
C'est du code-golf . La réponse la plus courte en octets gagne. Des échappatoires standard s'appliquent.
✂
s?GH↙→→↖⊕÷Lθ⁴θ
cela fonctionnera la prochaine fois que je pousserai Charcoal05AB1E , 23 octets
Essayez-le en ligne!
Explication
la source
JavaScript (ES6),
119117108105 octetsFormaté et commenté
Cas de test
Afficher l'extrait de code
la source
C #, 260 octets
Je voulais vraiment utiliser
SetCursorPosition
.Non golfé:
la source
Mathematica, 164 octets
contribution
la source
[[1]]
peut être remplacé par#&@@
.@(...)
, faites-le à la[...]
place. Et je n'ai pas testé, mais vous pouvez probablement enregistrer un autre octet en donnantColumn
un nom (ou peut-être même pourColumn[#,Alignment->Center]&
éviterq
), puis en mettant toutes les variables restantes dans le premier argument de l'extérieurColumn
(pour enregistrer les parenthèses environnantes).Python 3 , 120 octets
Premier golf, j'ai pensé que je pourrais aussi bien apprendre du Python en cours de route.
Essayez-le en ligne!
Explication:
Le premier caractère est imprimé seul après les
len(a)//4
espaces, puis les premier et dernieri
caractères à partir du second sont imprimés, séparés par des2*i - 1
espaces.Enfin, la sous-chaîne restante est imprimée.
la source
p=print
, puis d'utiliser simplementp
pour les trois queprint
vous utilisez.//
(division du sol) peut être remplacé par/
.GNU sed ,
178158132 132 + 1 = 133 octets+1 octet pour le
-r
drapeau.Essayez-le en ligne!
Explication
Dans les révisions précédentes, j'utilisais beaucoup d'octets traitant des mathématiques, des cas spéciaux et du nettoyage, même si intuitivement j'étais sûr qu'ils pouvaient être évités. Depuis, j'ai réussi à le faire, surtout.
Supposons que nous ayons l'entrée
abcdEFGHIJKLMnop
. Les lettresEFGHIJKLM
seront au bas du triangle, je les ai donc mises en majuscule comme aide visuelle.Nous préparons d'abord l'entrée en plaçant le premier caractère sur sa propre ligne (précédé d'un espace) et en insérant un curseur (
;
) avant le dernier caractère:Maintenant nous avons:
Maintenant, dans une boucle, nous allons faire quelques choses sur la dernière ligne: 1. Copiez les espaces de la ligne précédente et insérez-les après le premier caractère, plus deux; 2. Déplacez le dernier caractère à droite après les espaces, suivi d'une nouvelle ligne; et 3. Déplacez le curseur de trois caractères vers la gauche.
Voici le résultat de chaque itération:
Vous pouvez voir la pyramide commencer à prendre forme. Vous pouvez également voir à quoi servait le curseur: à chaque itération, il se déplaçait de trois caractères vers la gauche, et lorsqu'il n'y avait plus trois caractères à sa gauche, il rompait la boucle, qui se trouve être juste au moment où nous avons atteint le "bas" de la pyramide.
Maintenant, nous allons faire une opération similaire mais en sens inverse. Dans une boucle, nous allons copier les espaces du début de la ligne avec le curseur au début de la ligne précédente, plus un, dans le processus de déplacement du curseur vers cette ligne.
Voici quelques itérations et le résultat final:
Nous avons tous terminé maintenant, à l'exception de quelques caractères supplémentaires: un
;
espace supplémentaire sur la première ligne et deux espaces au "milieu" de la pyramide sur les trois lignes suivantes. Une simple substitution s'en débarrasse:Terminé!
la source
Rubis , 106 octets
Essayez-le en ligne!
la source
Python 2 ,
100 9796 octetsEssayez-le en ligne!
Explication:
Une chose intelligente que j'ai faite ici est de remplir l'entrée avec un espace à la fin, de sorte que le premier caractère se couple avec lui et cela peut être poussé dans la boucle (et puisque les espaces de fin sont autorisés)
Le nombre de boucles à suivre est associé à
len(word)//4
. Dans l'étape finale, la chaîne restante entière est imprimée (cela forme la base du triangle). Les espaces suivent un schéma simple; le premier ensemble d'espaces continue de diminuer de 1, tandis que le deuxième ensemble d'espaces continue d'augmenter de 2.la source
a
sera toujours un multiple de 4.//
->/
C 225 octets
expliqué
la source
C #, 172 octets
Essayez-le en ligne!
la source
Octave, 87 octets
* Dans une machine Windows, le code ci-dessus produit le résultat correct mais en tio j'ai ajouté du code pour le corriger.
Explication:
Essayez-le en ligne!
la source
Haskell , 136 octets
Essayez-le en ligne!
la source
PHP> = 7.1, 122 octets
PHP Sandbox Online
PHP> = 7.1, 124 octets
PHP Sandbox Online
la source
AWK , 129 octets
Essayez-le en ligne!
Je devrais penser que cela pourrait être un peu plus joué au golf, tout simplement sans le voir.
la source
Rétine , 99 octets
Essayez-le en ligne! Explication: Les deux premières étapes génèrent les deux premières lignes, mais après cela, aucun boîtier spécial n'est nécessaire et chaque ligne suivante peut être générée automatiquement:
la source
Java 8, 213 octets
Explication:
Essayez-le ici.
la source
Perl 5 , 76 octets
74 octets de code +2 pour
-F
Essayez-le en ligne!
la source