Introduction:
Inspiré par ce commentaire de @MagicOctopusUrn sur @Emigna réponse 05AB1E de mon « Il était juste un bug défi » :
8F9ÝÀNð×ý}».∊
J'ai fait fait un vaisseau spatial maw! Et j'étais tout excité de suggérer une édition de 12 octets. - Magic Octopus Urn 17 juil. 17 à 20:10
Ce qui est un programme 05AB1E (hérité) ayant pour résultat:
1234567890
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1234567890
Défi:
Entrée: une chaîne non vide
Sortie: à partir de l’extérieur, ajoutez un espace supplémentaire entre chaque caractère, chaque ligne, comme dans la sortie ci-dessus, égale à la valeur length - 1
. Donc, pour une entrée, 1234567890
la sortie serait en réalité la suivante:
1234567890
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1234567890
Pourquoi? La longueur de 1234567890
est 10
. Nous commençons donc par sortir 10 lignes: la première ligne sans espaces; deuxième avec un séparateur d'espace; troisième avec deux; etc. Et puis (sans avoir la ligne médiane avec les length - 1
espaces dupliqués), nous revenons à l'entrée initiale en descendant.
Règles du challenge:
- Il est garanti que l’entrée est non vide (une longueur
>= 1
). (Pour les entrées à caractère unique, nous produisons simplement ce caractère.) - Toute quantité d'espaces de fin de ligne / fin de ligne / fin de ligne est autorisée, à condition que la sortie elle-même (où que vous soyez à l'écran) soit correcte. (Les lignes vides entre les lignes de sortie sont également interdites.)
- L'entrée ne contiendra que des caractères ASCII imprimables, à l'exception des espaces (espaces de code
[33, 126]
) - I / O est flexible. L'entrée peut être prise en tant que paramètre STDIN, argument ou fonction. Peut être une liste / tableau / flux de caractères au lieu d'une chaîne. La sortie peut également être une liste / un tableau / un flux de caractères au lieu de chaînes. peut être imprimé sur STDOUT; retourné sous forme de chaîne délimitée par des lignes; etc.
Règles générales:
- C'est du code-golf , donc la réponse la plus courte en octets est gagnante.
Ne laissez pas les langues de code-golf vous décourager de poster des réponses avec des langues autres que le code de golf. Essayez de trouver une réponse aussi courte que possible à n'importe quel langage de programmation. - Les règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, fonctions / méthode avec les paramètres appropriés et des programmes complets de type de retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- En outre, l'ajout d'une explication de votre réponse est fortement recommandé.
Cas de test:
Input: @
Output:
@
Input: test
Output:
test
t e s t
t e s t
t e s t
t e s t
t e s t
test
Input: ?!
Output:
?!
? !
?!
Input: Spaceship
Output:
Spaceship
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
S p a c e s h i p
Spaceship
Input: 05AB1E
Output:
05AB1E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
0 5 A B 1 E
05AB1E
Input: )}/\
Output:
)}/\
) } / \
) } / \
) } / \
) } / \
) } / \
)}/\
ಠ_ಠ
puis réalisez que c'est parce que vous l'avez fait accidentellement il y a un anಠ⌣ಠ
.Réponses:
Japt ,
8 à6 octetsPrend les entrées sous forme de tableau de caractères et génère un tableau de chaînes.
L'essayer
Explication
Original, 8 octets
I / O est une chaîne. Utilise le
-R
drapeau. Inclut les espaces de fin sur chaque ligne.L'essayer
Explication
la source
S.ç()
FTW encore une fois :-)R ,
10599858479 octets-6 grâce à @Kevin Cruissen et @Giuseppe
-14 de passer à une méthode basée sur les expressions rationnelles
-1 merci à @ Giuseppe
-5 grâce à @digEmALl
Essayez-le en ligne!
la source
in(r<-
.s
fois afin que vous puissiez simplement l’utiliser comme argumentwrite
directement; vous ramenant à 99 octets1
plutôt qu'un""
danswrite
? Je creuse votre utilisation deMap
!collapse
argument,paste
mais cela ne se produit pas ...JavaScript (ES6), 53 octets
Prend la saisie sous forme de tableau de caractères.
Essayez-le en ligne!
la source
Charbon de bois , 10 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
la source
[
à]
- ou est - ce une autre commande séparée?Toile , 8 octets
Essayez-le ici!
La version 7 octets était trop bonne pour ce défi.
la source
/
s dans unX
?─
- palindromize vertical. La palindromisation de Canvas fait des choses cool . La partie qui se chevauche a aussi son propre caractère .Python 2 ,
7270686665 octets-2 octets grâce à Kevin Cruijssen
-3 octets grâce aux ovs
Essayez-le en ligne!
la source
c==len(w)-1
peut être joué au golf par 1 octet avecc+2>len(w)
. EDIT: Dans votre nouvelle version de 70 octets,0<c
peut êtrec
.05AB1E ,
10 à9 octetsSauvegardé 1 octet grâce à Adnan
Essayez-le en ligne!
Explication
la source
S
. La saisie étant flexible, la saisie en tant que liste est autorisée.»
peut être omis.»
et modifiez la bouclev
en carteε
.εINð×ý}û»
marche aussi?Ruby ,
54 à49 octetsEssayez-le en ligne!
Prend les entrées sous forme de tableau de caractères et génère un tableau de chaînes.
la source
Japt ,
9 à8 octets-1 octet de @Shaggy
Essayez-le en ligne!
la source
SpX
->Xî
pour une économie de 1 octet.PowerShell ,
66 ans54 octets-12 octets grâce à mazzy
Essayez-le en ligne!
Prend une entrée via splatting, qui sur TIO se manifeste sous la forme d'arguments de ligne de commande distincts pour chaque caractère.
Nous avons d'abord défini
$a=$args
comme argument d'entrée. Ensuite, nous définissons$x
égal à la.count
de ce tableau-1
. Nous devons ensuite parcourir les lettres pour construire le vaisseau spatial. Cela se fait en construisant une plage allant de0
à$x
, puis$x
descendant à0
, puis en utilisantGet-Unique
pour extraire uniquement la plage appropriée.Chaque itération, nous prenons nos arguments d’entrée et
-join
les associe au nombre correspondant d’espaces. Chacune de ces chaînes est laissée sur le pipeline et une impliciteWrite-Output
nous donne des nouvelles lignes gratuitement à la fin du programme.la source
0..($x=($a=$args).count-1)+$x..0|gu|%{$a-join(' '*$_)}
Get-Unique
marche comme ça sur la cuisinière? C'est fou! Merci!05AB1E (hérité) , 9 octets
Saisie sous forme de liste de caractères.
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
la source
[
,]
et(
,)
. Peut vouloir ajouter ces cas pour attraper du charbon de bois aussi. (A déplacé les autres commentaires à la réponse d'Emigna, car il s'agissait de la réponse que j'avais initialement commentée.)û»
au lieu de.∊
.Haskell ,
6059 octetsEssayez-le en ligne!
Explication
Pour une chaîne (par exemple
"abc"
), nous appliquons d'abordqui est le même que
Ceci s'applique de manière répétée
(?)
(ajoute un espace à chaque caractère de la plage [33 ..] ) jusqu'àstr
ce qu'il y ait autant de chaînes que destr
caractères:["abc","a b c ", "a b c "]
Maintenant, il suffit de concaténer le résultat (moins le dernier élément) avec sa contrepartie inversée:
la source
MATL ,
252213 octetsEssayez-le en ligne!
Grâce à Luis Mendo d’ avoir suggéré un golf de 5 octets, ce qui m’a inspiré à raser 4 octets de plus!
Explication, avec exemple d'entrée
'abc'
:la source
Gelée , 9 octets
Essayez-le en ligne!
Retourne une liste de lignes. sortie rendue plus jolie sur TIO.
la source
,€⁶$LСŒḄ
. Autres, plus semblables, 9:J’⁶ẋŒḄɓjⱮ
etJ’⁶ẋŒḄjⱮ@
(je cherchais des brèves mais pas encore de joie)LḶ⁶ẋ
ouŒḄ
. Cependant, si vous parvenez à trouver une sauvegarde, faites-moi un ping. :-),€⁶$LСŒḄ
peut-être peut-être pas valide car il a une imbrication folle, donc pourrait avoir besoin d'unY
programme complet.['I', 'f', [[' '], 't', 'h', [['i']], 's'], ' ', 'i', ['s', ' '], 'a', [[' ', 's', 't'], 'r', ['i', 'n', 'g'], ' '], 'w', ['e', ' ', 'a', 'r', 'e'], ' ', 'd', 'o', ['o'], 'm', [[[[['e']]]]], [[[['d']]]], '!']
Au moins, j'ai dépassé le 05AB1E ...Pyth , 12 octets
Juste ma soumission Pyth obligatoire. Je suis assez fier de cela, donc une explication viendra probablement bientôt.
Essayez-le ici!
Essayez-le ici!
la source
Stax , 10 octets
Exécuter et déboguer
Sorties avec des espaces de fin sur chaque ligne.
Explication:
la source
Java (JDK 10) , 115 octets
Essayez-le en ligne!
la source
l-Math.abs(i)
peut être joué au golfi<0?l+i:l-i
pour -2 octets.l-i<0?-i:i
?l-(i<0?-i:i)
(12 octets).K (oK) ,
25 à24 octetsSolution:
Essayez-le en ligne!
Explication:
Port de ma solution K4 :
Remarques:
la source
,:'
->+,
Pascal (FPC) ,
143135 octetsEssayez-le en ligne!
Je vais probablement gagner seulement contre Lenguage ...
la source
PHP,
8889 octetsnécessite PHP 5 ou une version ultérieure pour
str_split
. Exécuter en pipe-nR
ou essayer en ligne .la source
K4 , 23 octets
Solution:
Exemple:
Explication:
A des espaces de fin sur chaque ligne.
la source
C #,
11310598 octetsEssayez-le en ligne!
la source
s=>{
avant et}
après pour en faire une fonction lambda. En outre, une chose à faire au golf est de supprimer les supports autour de la boucle. Essayez-le en ligne.Scala , 82 octets
Essayez-le en ligne
Scala a beaucoup de raccourcis qui m'aident ici et c'est assez lisible! Essayez Scala
la source
0
delength
quantité d'espaces, au lieu de0
lalength-1
quantité d'espaces. Je ne connais pas très bien Scala, mais il semble que vous puissiez résoudre les deux problèmes avec +4 octets (86 octets au total) comme ceci:for(i<-(0 to a.size-1)union(-a.size+2 to 0))println(a.map(_+" "*Math.abs(i)).mkString)
Encore une fois, bienvenue, et profitez de votre séjour! :)Oracle SQL, 115 octets
Pas une langue de golf mais ...
En supposant que la valeur soit dans la colonne
v
de la tablet
:Violon SQL
Configuration du schéma Oracle 11g R2 :
Requête 1 :
Résultats :
(SQLFiddle affiche les valeurs alignées à droite dans la colonne pour une raison quelconque ... il n'y a pas d'espaces de gauche)
la source
(.)
être joué.
en utilisant\0
au lieu de\1
comme vous pourriez en Java par exemple? EDIT: Peu importe, c'est pour$0
, pas\0
.. ( exemple Java de ce que je voulais dire ).8086 code machine,
5653 octetsAssemblé à partir de:
Cas de test:
la source
length
nombre d'espaces et il y a 9 lignes au total, mais la ligne médiane doit avoir unlength-1
nombre d'espaces et il doit y avoir un total de 7 lignes (pour le mot de 4 lettres 'test'`) ..: (J'espère que ce n'est pas trop cher en termes d'octets à corriger?Haskell,
646059 octetsEssayez-le en ligne!
la source
Bash ,
115,109,105,100,97,96,92,91, 90 octets-5 & -3 grâce à Kevin Cruissen
Essayez-le en ligne!
Notez que depuis le
\
est un char échappement shell, le cas de test)}/\
doit être saisi avec un supplément\
comme ceci:)}/\\
.la source
in
etprintf
comme en Python?bash
code ne saisit qu'une chaîne ( c'est- à- dire une seule ligne). Les cas de test fonctionnent tous cependant, mais)}/\
doivent être cités de la sorte<<< ')}/\' read s; ...etc.
. Les espaces aprèsin
etprintf
sont nécessaires.for
etdo
peuvent être supprimés.f=1
peut être changé enc=f=1
. Etf=f+c
peut êtref+=c
.f!=0
àf
la boucle for. Tout comme dans JavaScript et Python,0
falsey et chaque autre entier positif / négatif sont apparemment véridiques dans Bash.Perl 6 , 43 octets
Essayez-le en ligne!
Retourne une liste de lignes.
Explication:
la source
C (gcc) ,
131129111 octetsEssayez-le en ligne!
-20 octets grâce à ceilingcat !
Essayez-le en ligne!
Ou, si la longueur peut être acceptée en tant que paramètre:
C (gcc),
105102 octets-1 octet grâce à ceilingcat!
Essayez-le en ligne!
la source
x
est occulté et donc déclaré redondant.PHP,
148146143141 octetsVous pouvez le tester comme ceci:
Sortie
bac à sable
Version élargie
Tentative 2, 92 octets
après avoir vu la réponse de @Titus, j'ai réduit le mien à ceci:
J'essayais de trouver un moyen d'utiliser 1 boucle au lieu de 2 ... Croyez-le ou non, je n'utilise presque jamais le
for
boucle dans du "vrai" code. C'était le~
bitwise Non, il me manquait ...C'est encore un peu plus long
92
pour que je ne me sente pas si mal. Mais je vais le mettre dans une deuxième tentative de toute façon.$argn
est l'entrée de la ligne de commandebac à sable
la source
f
au lieu d’attribuer une fonction anonyme à$f
-function f(
enregistre 2 octets$f=function(
, et vous enregistrez un autre octet chaque fois que vous appelezf(...)
au lieu de$f(...)
. Vous pouvez également capturer$s
, en économisant 2 octets, une($i)use($s)
longueur supérieure de 4 octets($i,$s)
, mais en économisant 3 octets pour chaque appel au$f($i)
lieu de$f($s,$i)
; dans les langues avec capture automatique, comme JS, il s'agit le plus souvent d'une économie viable, car vous ne payez pas l'amende duuse
relevé.use
mais ça fait plus longtemps, pour que ce sens$i
soit dynamique, il faudrait le passer par référence. Donc, il doit êtreuse(&$i)
et le$i
doit être défini avant de le transmettre par référence à$f
. Ce qui signifie le placer dans la fonction parent ou avant toute autre. Pour la fonction que cela pourrait êtrefunction s($s,$i)
et juste savoir qu'il doit être appelé,s($s,0)
mais cela semble moche, et c'est autour11 bytes, use(&$i),$i
$s
cependant et changer le\n
à un retour de ligne réel. Cela passe à143
2 à la fin de la ligne et 1 à l'utilisationf
au lieu d'une fermeture:function s($s){for(;$i<strlen($s);++$i)f($i,$s);for(--$i;--$i>=0;)f($i,$s);}function f($i,$s){echo chunk_split($s,1,str_repeat(' ',$i))." ";}
Des fonctions supplémentaires comme celle-ci sont autorisées selon cette méta publication: codegolf.meta.stackexchange.com/questions/7614/…