Étant donné une liste avec des listes imbriquées à l'intérieur, renvoyez la liste avec les éléments des listes imbriquées dé-imbriqués.
Contribution
La liste aura, au plus, des listes imbriquées de 4 profonds. Comptez tous les 0 dans l'entrée comme un espace nul.
Production
Imprimez individuellement chaque article. N'imprimez pas la sortie sous forme de liste. Vous pouvez séparer chaque élément avec n'importe quel type d'espace.
Exemples de cas
[[1, 0], [2, 0], [2, 3]] -> 1 2 2 3
[[[4, 5, 8]], [[5, 6, 20]], [[1, 20, 500]]] -> 4 5 8 5 6 20 1 20 500
[[[1, 0], [0, 0], [0, 0]], [[1, 0], [1, 2], [2, 0]], [[2, 0], [0, 0], [0, 0]]] -> 1 1 1 2 2 2
Le code le plus court gagne.
[[[[5]]]]
, non?[[[[5]]]]
fonctionne sur tio.run/… mais pas sur tio.run/…Count all 0's within the input as a null space.
moyenneignore zeros
Réponses:
APL (10)
Explication:
⍞~'[]'
: Saisie utilisateur (⍞
) sans (~
) les caractères'[]'
Cela donne quelque chose comme
'1,2,0,2,3'
⍎
: Évaluer cette chaîne. Il se trouve que,
c'est l'opérateur de concaténation, alors maintenant nous avons une liste:1 2 0 2 3
(les listes APL sont séparées par des espaces par défaut)0~⍨
: Supprimez tous les chiffres 0 de cette liste. (Il s'agit d'une liste de nombres, pas de chaînes, pour le moment, donc les zéros dans les nombres ne sont pas supprimés.la source
Sed, 20 caractères
La solution est basée sur l'expression régulière étendue POSIX.
Sortie :
Edit : POSIX Basic Regular Expression ( solution @clueless ), 19 caractères :
la source
s/[^0-9][^1-9]*/ /g
fonctionne également et ne nécessite pas d'expressions régulières étendues.Python, 45
w00, gestion des exceptions dans le golf!
la source
d(input())
ligne dans le nombre de caractères.Perl,
201613 caractèresLe
-l
commutateur est nécessaire pour conserver la nouvelle ligne finale dans la sortie.Voici une version alternative qui fonctionne réellement avec les listes sémantiquement (51 caractères).
Ces deux programmes profitent de la stipulation du problème qu'il "peut séparer chaque élément avec n'importe quel type d'espace blanc", et remplace les zéros par des blancs, au lieu de les supprimer purement et simplement.
la source
K, 12
.
la source
x^y
) comme ceci:{(,//x)^0}
ou même{,/x^0}/
. Fonctionne dans johnearnest.github.io/ok/index.htmlPerl
13, 14 char dit:p
compte pour un charusage:
la source
p
commutateur dans le nombre).Ruby, 38 caractères
Les numéros sont imprimés séparés par un saut de ligne.
la source
Golfscript 15
Contribution
Exécutez à partir de la ligne de commande, comme ceci:
(en supposant que le
x.gs
fichier contient le code présenté ci-dessus).Notez qu'il n'y a pas de virgule (
,
) lors de la définition des tableaux; c'est la syntaxe GolfscriptProduction
Lorsque la commande décrite dans la section Entrée est émise, la sortie est:
la source
Python 3, 49 caractères
Python 2, 58 caractères
la source
Japt , 5 octets
Essaye-le
Explication
Entrée implicite du tableau
U
. Aplatissez le tableau avecc
. Filtrez-le avecf
pour supprimer le0
s. Joignez-le à une chaîne en utilisant des espaces avec¸
. Sortie implicite de la chaîne résultante.la source
Java 10, 106 octets
Entrée imbriquée
Object[]
, sortie imprimée sur STDOUT.Essayez-le en ligne.
46 octets
Entrée et sortie en tant que
String
.Essayez-le en ligne.
la source
C, 45 caractères
Il suppose que l'entrée est donnée dans une zone mémoire modifiable pointée par
s
.la source
01
(me semble légal). Et*s-49&&puts(s)
est plus court.Python,
99111 caractèresVersion précédente à 99 caractères - échoue lorsque des listes contenant uniquement des zéros sont incluses:
d(l)
aplatit récursivement la listel
, tout en filtrant les zéros et en convertissant les nombres en chaînes.la source
a and b or c
place des Ca?b:c
, mais il échoue lorsqu'il estb
évalué à faux (liste vide dans ce cas).Scala, 42 caractères
Tokenized la chaîne par des non chiffres et des non-chiffres suivis de zéro.
la source
Prologue (79)
Il saisit la liste en tant que terme, vous devez donc mettre un '.' après la liste en entrée.
En fait, aplatit la liste.
la source
APL (Dyalog) , 4 octets
Essayez-le en ligne!
0~⍨
zéros supprimés de∊
l' ε nlisted (aplatie) des donnéesla source
Stax , 2 octets
Exécuter et déboguer
$
est aplati.f
consiste à filtrer les valeurs de falsey et à imprimer sur des lignes distinctes.la source
Scala 147:
Travailler sur de vraies listes, pas sur des chaînes:
Maintenant, les données de test:
la source
bash: 29 caractères
compter la ligne 2 uniquement sans 'echo $ l |'. Test pour 3 échantillons:
la source
Tcl , 47 octets
Essayez-le en ligne!
En supposant que 4 profonds est quelque chose comme
{{{{5}}}}
. Comme il n'y a aucun exemple d'une telle chose sur les cas de test, cela peut être quelque chose comme{{{5}}}
; si c'est le cas, je peux raccourcir mon code!Tcl , 66 octets
Essayez-le en ligne!
la source
Pyth, 5 octets
Suite de tests
la source
R , 29 octets
Essayez-le en ligne!
unlist
convertit la liste en unatomic
vector
récursif, nous avons donc juste besoin de filtrer les éléments zéro.la source
JavaScript (Node.js) , 53 octets
Essayez-le en ligne!
la source
Brachylog , 8 octets
Essayez-le en ligne!
Prend l'entrée via la variable d'entrée et imprime la sortie séparée par des retours à la ligne. Habituellement, je me plaindrais du format de sortie, mais cela m'a en fait sauvé un octet d'une manière que je n'aurais pas pensé autrement - mettre
ẉ⊥
la fin est plus court que de l'envelopper{}ᶠ
.Si les éléments de la liste ne sont pas limités à des entiers non négatifs:
Brachylog , 11 octets
Essayez-le en ligne!
la source
PHP , 70 octets
Essayez-le en ligne!
Ce ne sera pas le plus court (ni le plus long), mais
array_walk_recursive()
je me suis dit que ce serait une chance de l'utiliser , ce qui jusqu'à aujourd'hui, je ne pense pas avoir un usage! Au moins, il devrait être capable de gérer des listes imbriquées profondes de niveau arbitraire.la source
Wolfram Language (Mathematica) , 37 octets
Essayez-le en ligne!
la source