Если у вас есть список со вложенными списками, верните список с вложенными списками.
вход
Список будет содержать не более 4 вложенных списков. Посчитайте все 0 внутри ввода как нулевое пространство.
Выход
Индивидуально распечатать каждый предмет. Не распечатывайте вывод в виде списка. Вы можете отделить каждый элемент от любого пробела.
Примеры случаев
[[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
Самый короткий код выигрывает.
[[[[5]]]]
, верно?[[[[5]]]]
работает на tio.run/…, но не на tio.run/…Count all 0's within the input as a null space.
значениеignore zeros
Ответы:
APL (10)
Объяснение:
⍞~'[]'
: Пользовательский ввод (⍞
) без (~
) символов'[]'
Это дает что-то вроде
'1,2,0,2,3'
⍎
: Оценить эту строку. Так получилось, что,
это оператор конкатенации, так что теперь у нас есть список:1 2 0 2 3
(списки APL по умолчанию разделены пробелами)0~⍨
: Удалить все цифры 0 из этого списка. (Это список чисел, а не строк, поэтому нули в числах не удаляются.источник
Сед, 20 символов
Решение основано на расширенном регулярном выражении POSIX.
Выход :
Изменить : Базовое регулярное выражение POSIX ( решение @clueless ), 19 символов :
источник
s/[^0-9][^1-9]*/ /g
также работает, и не требует расширенных регулярных выражений.Python, 45
w00, обработка исключений в гольфе!
источник
d(input())
строку в число символов.Perl,
201613 символов-l
Выключатель необходимо сохранить конечный символ новой строки в выводе.Вот альтернативная версия, которая фактически работает со списками семантически (51 символ).
Обе эти программы используют условие задачи, заключающееся в том, что они «могут разделять каждый элемент любым пробелом» и заменяют нули пробелами, вместо того, чтобы удалять их полностью.
источник
К, 12
,
источник
x^y
), например так:{(,//x)^0}
или даже{,/x^0}/
. Работает в johnearnest.github.io/ok/index.htmlPerl
13, 14 символов :p
считать за один символиспользование:
источник
p
переключатель в счет).Рубин, 38 знаков
Числа печатаются через разрыв строки.
источник
Golfscript 15
вход
Запустите из командной строки, вот так:
(предполагая, что
x.gs
файл содержит код, представленный выше).Обратите внимание, что запятых (
,
) при определении массивов нет; это синтаксис GolfscriptВыход
Когда выдается команда, описанная в разделе « Ввод », вывод:
источник
Python 3, 49 символов
Python 2, 58 символов
источник
Japt , 5 байт
Проверь это
объяснение
Неявный ввод массива
U
. Свести массив с помощьюc
. Отфильтруйте его,f
чтобы удалить0
s. Присоедините его к строке, используя пробелы с¸
. Неявный вывод результирующей строки.источник
Java 10, 106 байт
Ввод как вложенный
Object[]
, вывод на STDOUT.Попробуйте онлайн.
46 байт
Вход и выход как
String
.Попробуйте онлайн.
источник
С, 45 символов
Предполагается, что ввод дается в изменяемой области памяти, на которую указывает
s
.источник
01
(мне кажется законным). И*s-49&&puts(s)
короче.Питон,
99111 символовПредыдущая 99-символьная версия - не работает, если включены списки только с нулями:
d(l)
рекурсивно выравнивает списокl
, фильтруя нули и преобразовывая числа в строки.источник
a and b or c
вместо Сa?b:c
, но он завершается неудачно, когдаb
оценивается как ложное (пустой список в данном случае).Скала, 42 символа
Маркирует строку не цифрами и не цифрами, за которыми следует ноль.
источник
Пролог (79)
Он вводит список как термин, поэтому вам нужно поставить «.» после списка на входе.
На самом деле список списков.
источник
APL (Дьялог) , 4 байта
Попробуйте онлайн!
0~⍨
нули удалены из∊
ε nlisted (уплощенная) данныеисточник
Stax , 2 байта
Запустите и отладьте его
$
сплющен.f
отфильтровывает фальшивые значения и печатает на отдельных строках.источник
Scala 147:
Работа с реальными списками, а не над строками:
Теперь тестовые данные:
источник
Баш: 29 символов
считая только строку 2 без 'echo $ l |'. Тест на 3 образца:
источник
Tcl , 47 байт
Попробуйте онлайн!
Предполагая, что 4-глубокий это что-то вроде
{{{{5}}}}
. Так как в тестовых примерах нет такого примера, это может быть что-то вроде{{{5}}}
; если это так, я могу сделать мой код короче!Tcl , 66 байт
Попробуйте онлайн!
источник
Pyth, 5 байт
Тестирование
источник
R , 29 байт
Попробуйте онлайн!
unlist
преобразует список вatomic
vector
рекурсивный, поэтому нам просто нужно отфильтровать нулевые элементы.источник
JavaScript (Node.js) , 53 байта
Попробуйте онлайн!
источник
Брахилог , 8 байт
Попробуйте онлайн!
Принимает ввод через переменную ввода и печатает вывод, разделенный новыми строками. Обычно я жаловался на выходной формат, но на самом деле это спасло мне байт так, как я мог бы и не подумать - поставить
ẉ⊥
конец ближе, чем завернуть{}ᶠ
.Если элементы списка не ограничены неотрицательными целыми числами:
Брахилог , 11 байт
Попробуйте онлайн!
источник
PHP , 70 байт
Попробуйте онлайн!
Это не будет самым коротким (и не самым длинным), но я подумал, что это будет шанс получить использование
array_walk_recursive()
, которое до сегодняшнего дня я не могу себе представить, чтобы когда-либо использовать его! По крайней мере, он должен быть в состоянии обрабатывать вложенные списки произвольного уровня.источник
Wolfram Language (Mathematica) , 37 байт
Попробуйте онлайн!
источник