Взято из этого вопроса в Stack Overflow. Спасибо также @miles и @Dada за то, что они предложили тестовые материалы, которые касаются некоторых ключевых случаев.
Соревнование
Учитывая массив целочисленных значений, удалите все нули, которые не окружены некоторым ненулевым значением.
Эквивалентно, запись должна сохраняться либо в том случае, если она ненулевая, либо если это ноль, который непосредственно близок к ненулевому значению.
Сохраняемые записи должны сохранять в выходных данных порядок, в котором они находились.
пример
Данный
[2 0 4 -3 0 0 0 3 0 0 2 0 0]
значения, которые должны быть удалены, помечены x:
[2 0 4 -3 0 x 0 3 0 0 2 0 x]
и поэтому вывод должен быть
[2 0 4 -3 0 0 3 0 0 2 0]
правила
Входной массив может быть пустым (и тогда вывод тоже должен быть пустым).
Форматы ввода и вывода, как обычно, гибкие: массив, список, строка или все, что разумно.
Код гольф, наименьшее количество лучших.
Контрольные примеры
[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вместо-2? Многие языки используют этот формат.