Entnommen aus dieser Frage bei Stack Overflow. Vielen Dank auch an @miles und @Dada, die Testeingaben vorgeschlagen haben, die einige Eckfälle ansprechen.
Die Herausforderung
Entfernen Sie bei einem Array von Ganzzahlwerten alle Nullen, die nicht von einem Wert ungleich Null flankiert sind.
Entsprechend sollte ein Eintrag beibehalten werden, wenn er nicht Null ist oder wenn er eine Null ist, die einem Wert ungleich Null unmittelbar nahe kommt.
Die Einträge, die beibehalten werden, sollten in der Ausgabe die Reihenfolge beibehalten, die sie in der Eingabe hatten.
Beispiel
Gegeben
[2 0 4 -3 0 0 0 3 0 0 2 0 0]
Die Werte, die entfernt werden sollen, sind mit einem gekennzeichnet x
:
[2 0 4 -3 0 x 0 3 0 0 2 0 x]
und so sollte die Ausgabe sein
[2 0 4 -3 0 0 3 0 0 2 0]
Regeln
Das Eingabearray kann leer sein (und dann sollte auch die Ausgabe leer sein).
Eingabe- und Ausgabeformate sind wie gewohnt flexibel: Array, Liste, Zeichenfolge oder alles, was sinnvoll ist.
Code Golf, am wenigsten am besten.
Testfälle
[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
statt verwenden-2
? Nicht wenige Sprachen verwenden dieses Format.