Tiré de cette question à Stack Overflow. Merci également à @miles et @Dada d'avoir suggéré des entrées de test qui répondent à certains cas de coin.
Le défi
Étant donné un tableau de valeurs entières, supprimez tous les zéros qui ne sont pas flanqués d'une valeur différente de zéro.
De manière équivalente, une entrée doit être conservée si elle est non nulle ou si c'est un zéro qui est immédiatement proche d'une valeur non nulle.
Les entrées conservées doivent conserver dans la sortie l'ordre qu'elles avaient dans l'entrée.
Exemple
Donné
[2 0 4 -3 0 0 0 3 0 0 2 0 0]
les valeurs à supprimer sont marquées d'un x
:
[2 0 4 -3 0 x 0 3 0 0 2 0 x]
et donc la sortie doit être
[2 0 4 -3 0 0 3 0 0 2 0]
Règles
Le tableau d'entrée peut être vide (et la sortie doit également être vide).
Les formats d'entrée et de sortie sont flexibles comme d'habitude: tableau, liste, chaîne ou tout ce qui est raisonnable.
Code golf, le moins de mieux.
Cas de test
[2 0 4 -3 0 0 0 3 0 0 2 0 0] -> [2 0 4 -3 0 0 3 0 0 2 0]
[] -> []
[1] -> [1]
[4 3 8 5 -6] -> [4 3 8 5 -6]
[4 3 8 0 5 -6] -> [4 3 8 0 5 -6]
[0] -> []
[0 0] -> []
[0 0 0 0] -> []
[0 0 0 8 0 1 0 0] -> [0 8 0 1 0]
[-5 0 5] -> [-5 0 5]
[50 0] -> [50 0]
-0
?
[010 0 0 01 1]
?
_2
place de-2
? De nombreuses langues utilisent ce format.