Contribution:
Une liste d'entiers
Sortie:
Mettez chaque chiffre (et le signe moins) dans sa propre file, dans l'ordre -0123456789
, en ignorant les chiffres en double.
Exemple:
Contribution: [1,729,4728510,-3832,748129321,89842,-938744,0,11111]
Sortie:
-0123456789 <- Added as clarification only, it's not part of the output
1
2 7 9
012 45 78
- 23 8
1234 789
2 4 89
- 34 789
0
1
Règles du défi:
- Tout chiffre dupliqué dans le numéro est ignoré.
- Les E / S peuvent être dans n'importe quel format raisonnable. L'entrée peut être une liste / un tableau de chaînes ou un tableau de caractères. La sortie peut être une liste de chaînes, caractères, matrice de caractères, etc.
- Les espaces de fin sont facultatifs.
- Toute quantité de nouvelles lignes de début ou de fin est facultative (mais pas entre les lignes).
- L'entrée contiendra toujours au moins un entier
- Vous devrez supporter une gamme entière d'au moins
-2,147,483,648
bien2,147,483,647
(32 bits). - La liste d'entrée ne contiendra jamais
-0
,00
(ou plus de deux zéros), ou des entiers avec des zéros non significatifs (c. -à-012
). - Si votre langue utilise un symbole différent pour les nombres négatifs (comme une majuscule
¯
), vous êtes également autorisé à l'utiliser à la place, tant qu'il est cohérent. - Vous êtes autorisé à avoir un délimiteur d'espace entre les chiffres (donc une ligne sans 5 ou 8 peut être à la
- 0 1 2 3 4 6 7 9
place de-01234 67 9
), tant qu'elle est cohérente (et donc il devrait également y avoir un espace entre-
et0
).
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 golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des 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 retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
Input: [1,729,4728510,-3832,748129321,89842,-938744,0,11111]
Output:
1
2 7 9
012 45 78
- 23 8
1234 789
2 4 89
- 34 789
0
1
Input: [4,534,4,4,53,26,71,835044,-3559534,-1027849356,-9,-99,-3459,-3459,-94593,-10234567859]
Output:
4
345
4
4
3 5
2 6
1 7
0 345 8
- 345 9
-0123456789
- 9
- 9
- 345 9
- 345 9
- 345 9
-0123456789
Input: [112,379,-3,409817,239087123,-96,0,895127308,-97140,923,-748]
Output:
12
3 7 9
- 3
01 4 789
0123 789
- 6 9
0
123 5 789
-01 4 7 9
23 9
- 4 78
Input: [-15,-14,-13,-12,-11,10,-9,-8,-7,-5,-4,-3,-1,0,9,100,101,102,1103,104,105,106,116,-12345690]
Output:
- 1 5
- 1 4
- 1 3
- 12
- 1
-01
- 9
- 8
- 7
- 5
- 4
- 3
- 1
0
9
01
01
012
01 3
01 4
01 5
01 6
1 6
-0123456 9
Input: [99,88,77,66,55,44,33,22,11,10,0,0,0,-941]
Output:
9
8
7
6
5
4
3
2
1
01
0
0
0
- 1 4 9
¯
au lieu de-
?"-0 1 2 3 4 <space> 6 7 <space> 9"
(Plusieurs espaces sont réduits dans les commentaires, pour une raison quelconque)Réponses:
Stax , 8 octets
Exécuter et déboguer
Il faut un numéro par ligne sur l'entrée standard. Il fonctionne en trouvant l'index cible de chaque caractère et en l'affectant dans cet index du résultat. Si l'index est hors limites, le tableau est développé avec des zéros jusqu'à ce qu'il tienne. Pendant la sortie,
0
devient un espace. Les autres sont des codes de caractères.Déballé, non golfé et commenté, voici à quoi il ressemble.
Exécuter celui-ci
la source
["7"]
. Ce format peut également gérer plusieurs valeurs telles que["34", "43"]
.05AB1E , 13 octets
Code:
Utilise le codage 05AB1E . Essayez-le en ligne!
Explication:
la source
vðTúyvyÐd+ǝ},
;).ǝ
ça fonctionnerait comme ça-0
. Mais maintenant que j'en pense, c'est en fait un nombre et non une chaîne comme je l'ai d'abord lu comme: PHaskell , 51 octets
-1 octet merci à Laikoni .
Essayez-le en ligne!
Ce défi est digitaliste. RÉ:
la source
"-0123456789"
est un octet plus court que'-':['0'..'9']
.JavaScript,
5958 octetsEntrée et sortie sous forme de tableau de chaînes.
L'essayer
Original
Prend l'entrée comme un tableau de chaînes et génère un tableau de tableaux de caractères
Afficher l'extrait de code
la source
APL (Dyalog) ,
3212 octets28 octets économisés grâce à @ Adám et @ngn
Essayez-le en ligne!
la source
{' '@(~∊∘⍵)'¯',⎕D}¨
. Peut évidemment aussi prendre-
avec un changement insignifiant.{⊃¨⍵∘.∩'¯',⎕d}
⊃¨⎕∘.∩'¯',⎕d
05AB1E ,
1713 octets4 octets enregistrés grâce à Adnan
Essayez-le en ligne!
Explication
la source
Rubis , 42 octets
Lambda anonyme traitant le tableau des nombres:
Essayez-le en ligne!
Alternativement, un programme complet complètement semblable à Perl est beaucoup plus court. Je dirais que les
-pl
commutateurs sont assez drôles dans ce contexte:Ruby
-pl
, 29 octetsEssayez-le en ligne!
Enfin, ce qui suit est possible s'il est acceptable que les chaînes de sortie soient citées:
Rubis
-n
, 27 octetsEssayez-le en ligne!
la source
JavaScript (Node.js) , 60 octets
Essayez-le en ligne!
la source
join
astuce est charmante - mais la question se lit comme un tableau de chaînes est une sortie OK, alors peut-être pouvez-vous raser 8 octets en le supprimant?(X+"").includes(x)
parRegExp(x).test(X)
(X+"").match(x)
serait encore plus court. La question permet également à l'entrée d'être un tableau de chaînes, ce qui pourrait même être le casX.match(x)
.Japt , 16 octets
Entrée et sortie sous forme de tableau de chaînes.
L'essayer
Explication
la source
Python 3 ,
7764 octets-12 octets grâce à @Rod
Essayez-le en ligne!
Ma première bonne tentative de golf en Python. Des conseils bienvenus!
Renvoie un tableau 2D de caractères.
la source
'-0123456789'
placerange(10)
et déposer le premier bloc et échangerstr(z)
avecz
, vous pouvez également passer à python2 et utiliser à la`y`
placestr(y)
(``
est + - équivalent àrepr
)in "-
.Perl 5
-pl
, 33 octetsEssayez-le en ligne!
Prend la saisie comme ligne séparée.
la source
Haskell , 47 octets
Essayez-le en ligne!
Permet
max
d'insérer un espace où aucun élément n'existe, car un espace est plus petit que n'importe quel chiffre ou signe moins.Si un nombre impie d'espaces de fin est OK, deux octets peuvent être enregistrés:
45 octets
Essayez-le en ligne!
la source
MATL , 13 octets
L'entrée est un tableau de cellules de chaînes. Essayez-le en ligne!Ou vérifiez tous les cas de test .
Explication
la source
J ,
3227 octets-5 octets grâce à FrownyFrog!
Essayez-le en ligne!
Solution originale:
J , 32 octets
Explication:
@":
convertir en caractères et}11$' '"0
changer le contenu d'un tableau de 11 espaces en ces caractères'_0123456789'i.[
aux endroits indiqués par les indices des caractères de cette listeEssayez-le en ligne!
la source
10|.":(10<."."0@[)}11$' '"0
Google Sheets , 124 octets
L'entrée est une liste séparée par des virgules dans la cellule
A1
. La sortie se situe dans la plageB1:L?
où?
se trouvent cependant de nombreuses entrées. (Vous pouvez placer la formule où vous le souhaitez, je viens de choisirB1
pour plus de commodité.) Notez que Sheets ajoutera automatiquement quatre parenthèses fermantes à la fin de la formule, nous économisant ces quatre octets.Un autre cas de test et un autre cas de test
Explication:
Mid("-0123456789",Row($1:$11),1)
choisit tour à tour chacun des 11 personnages.Find(Mid(~),Split(A1,","))
recherche ces caractères dans chacun des éléments d'entrée. Cela retourne une valeur numérique ou, s'il n'est pas trouvé, une erreur.If(IsError(Find(~)," ",Mid(~))
retournera un espace si le personnage n'a pas été trouvé ou le personnage s'il l'a été. (Je souhaite qu'il y ait un moyen d'éviter de dupliquer leMid(~)
partie mais je n'en connais pas.)ArrayFormula(If(~))
est ce qui rend les références multicellulaires dansMid(~)
etFind(~)
fonctionnent. C'est également ce qui fait qu'une formule dans une cellule renvoie des valeurs dans plusieurs cellules.Transpose(ArrayFormula(~))
transposer le tableau retourné car il démarre latéralement.la source
Gelée , 12 octets
Essayez-le en ligne!
-2 merci à Jonathan Allan lisant une règle que je n'ai pas.
Notez que le format d'E / S utilisé dans la liaison TIO n'est pas le format réel, qui est entré sous forme de liste de représentations de chaînes et sorti sous forme de liste de lignes.
la source
Perl 6 , 35 octets
Essayez-le en ligne!
La sortie est une matrice de caractères contenant soit des correspondances d'expression régulière, soit des caractères d'espacement.
la source
-pe
vous laisseriez-vous dispenser du .map initial, des accolades et de l'échange$^a
pour$_
-p
et-n
semblent en quelque sorte bogués , au moins sur TIO. Pour une raison quelconque, il$_
n'est pas transmis aux blocs. Voir l' exemple 1 , l' exemple 2 .Java 8, 53 octets
Mon propre défi est plus facile que je ne le pensais quand je le ferais ..
Entrée et sortie à la fois comme un
java.util.stream.Stream<String>
.Explication:
Essayez-le en ligne.
la source
C (gcc) , 159 octets
Essayez-le en ligne!
la source
R ,
9675 octetsEssayez-le en ligne!
Merci à Kevin Cruijssen d'avoir proposé cette approche regex!
Prend l'entrée de stdin sous forme d'entiers séparés par des espaces et imprime l'ascii-art sur stdout.
la source
function(N)for(i in N)cat(paste(gsub(paste("[^","]",sep=i)," ","-0123456789"),"\n"))
. (Entrez sous forme de tableau de chaînes au lieu de tableau d'entiers.) Essayez-le en ligne.SOGL V0.12 ,
1413 octetsEssayez-le ici!
Explication:
la source
SNOBOL4 (CSNOBOL4) , 85 octets
Essayez-le en ligne!
la source
Pyth, 14 octets
Prend l'entrée sous forme de liste de chaînes et génère une liste de chaînes pour chaque ligne.
Essayez-le ici
Explication
la source
Rétine , 26 octets
Essayez-le en ligne! Remarque: Espace de fin. Explication:
%
exécute son étape enfant~
une fois pour chaque ligne d'entrée.~
exécute d'abord sa phase enfant, qui encapsule la ligne[^
et]<CR><SP>
, produisant un programme qui remplace les caractères qui ne sont pas dans la ligne par des espaces. Le"-0123456789"
spécifie que l'entrée de ce programme est la chaîne donnée (les$
substitutions sont autorisées mais je n'en ai pas besoin).la source
Perl 5
-n
, 30 octetsNe fonctionnerait pas si
-
pouvait apparaître ailleurs que dans la première positionEssayez-le en ligne!
la source
-
pourrait apparaître ailleurs que dans la première position si cela peut être vrai alors vous ne répondez pas à ce défi, car ils ne seraient plus des entiers. : PRouge , 94 octets
Prend l'entrée comme un bloc de chaînes
Essayez-le en ligne!
la source
CJam , 20 octets
Essayez-le en ligne!
Accepte l'entrée comme une liste d'entiers séparés par des espaces. À peu près la même approche que la réponse de @adnans.
la source
C (gcc) ,
9594 octetsEssayez-le en ligne!
Saisie sous forme de liste de chaînes. Sortie vers STDOUT.
la source
c++
et en changeantd=c?c+47:
pourd=c++?c+46:
.K4 ,
3027 octetsSolution:
Exemple:
Explication:
Retournez "-0123 ..." ou "" en fonction de l'entrée. Interprété de droite à gauche. Pas de concurrence pour la réponse APL :(
la source
APL + WIN, 33 octets
Invite à saisir l'écran sous forme de chaîne
la source