Zaczerpnięte z tego pytania w Stack Overflow. Dziękujemy również @miles i @Dada za sugerowanie danych testowych dotyczących niektórych przypadków narożnych.
Wyzwanie
Biorąc pod uwagę tablicę wartości całkowitych, usuń wszystkie zera, które nie są flankowane przez jakąś niezerową wartość.
Odpowiednio, wpis powinien zostać zachowany, jeśli jest niezerowy lub jeśli zero jest bezpośrednio bliskie niezerowej wartości.
Przechowywane wpisy powinny zachować w danych wyjściowych kolejność, jaką miały na wejściu.
Przykład
Dany
[2 0 4 -3 0 0 0 3 0 0 2 0 0]
wartości, które należy usunąć, są oznaczone x:
[2 0 4 -3 0 x 0 3 0 0 2 0 x]
i tak wynik powinien być
[2 0 4 -3 0 0 3 0 0 2 0]
Zasady
Tablica wejściowa może być pusta (a następnie dane wyjściowe również powinny być puste).
Formaty wejściowe i wyjściowe są jak zwykle elastyczne: tablica, lista, ciąg znaków lub cokolwiek rozsądnego.
Kod golfa, najmniej najlepszy.
Przypadki testowe
[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]?
_2zamiast-2? Wiele języków korzysta z tego formatu.