Diberikan daftar dengan daftar yang bersarang di dalamnya, kembalikan daftar dengan item daftar yang bersarang di-bersarang.
Memasukkan
Daftar ini akan memiliki, paling banyak, daftar bersarang 4-kedalaman. Hitung semua 0 dalam input sebagai spasi nol.
Keluaran
Cetak masing-masing item secara individual. Jangan cetak output sebagai daftar. Anda dapat memisahkan setiap item dengan spasi apa pun.
Contoh Kasus
[[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
Kode terpendek menang.
[[[[5]]]]
, bukan?[[[[5]]]]
bekerja pada tio.run/… tetapi tidak pada tio.run/…Count all 0's within the input as a null space.
artinyaignore zeros
Jawaban:
APL (10)
Penjelasan:
⍞~'[]'
: Input pengguna (⍞
) tanpa (~
) karakter'[]'
Ini memberikan sesuatu seperti
'1,2,0,2,3'
⍎
: Evaluasi string ini. Kebetulan itu,
adalah operator gabungan, jadi sekarang kami memiliki daftar:1 2 0 2 3
(Daftar APL dipisahkan dengan spasi secara default)0~⍨
: Hapus semua angka 0 dari daftar ini. (Ini adalah daftar angka, bukan string, sekarang, jadi nol dalam angka tidak dihapus.sumber
Sed, 20 karakter
Solusi didasarkan pada Ekspresi Reguler Diperpanjang POSIX.
Keluaran :
Sunting : POSIX Basic Regular Expression ( solusi @clueless ), 19 karakter :
sumber
s/[^0-9][^1-9]*/ /g
juga berfungsi, dan tidak memerlukan ekspresi reguler yang diperluas.Python, 45
w00, penanganan pengecualian dalam golf!
sumber
d(input())
garis dalam jumlah karakter.Perl,
201613 karakterThe
-l
switch yang diperlukan untuk melestarikan baris terakhir dalam output.Inilah versi alternatif yang benar-benar berfungsi dengan daftar secara semantik (51 karakter).
Kedua program ini mengambil keuntungan dari ketentuan masalah bahwa "dapat memisahkan setiap item dengan segala jenis ruang kosong", dan mengganti nol dengan kosong, alih-alih menghapusnya langsung.
sumber
K, 12
.
sumber
x^y
) seperti:{(,//x)^0}
atau bahkan{,/x^0}/
. Bekerja di johnearnest.github.io/ok/index.htmlPerl
13, 14 char dit:p
hitung untuk satu charpemakaian:
sumber
p
sakelar dalam hitungan).Ruby, 38 karakter
Angka-angka dicetak dipisahkan oleh satu baris.
sumber
Golfscript 15
Memasukkan
Jalankan dari baris perintah, seperti:
(anggap
x.gs
file tersebut berisi kode yang disajikan di atas).Perhatikan bahwa tidak ada koma (
,
) saat mendefinisikan array; itu sintaks GolfscriptKeluaran
Ketika perintah yang dijelaskan di bagian Input dikeluarkan, outputnya adalah:
sumber
Python 3, 49 karakter
Python 2, 58 karakter
sumber
Japt , 5 byte
Menguji
Penjelasan
Input array secara implisit
U
. Ratakan array denganc
. Saring denganf
untuk menghapus0
s. Gabung ke string menggunakan spasi dengan¸
. Output tersirat dari string yang dihasilkan.sumber
Java 10, 106 byte
Input sebagai bersarang
Object[]
, output dicetak ke STDOUT.Cobalah online.
46 byte
Input dan output keduanya sebagai
String
.Cobalah online.
sumber
C, 45 karakter
Diasumsikan bahwa input diberikan dalam area memori yang dapat dimodifikasi yang ditunjukkan oleh
s
.sumber
01
(tampaknya legal bagi saya). Dan*s-49&&puts(s)
lebih pendek.Python,
99111 karakterVersi 99 char sebelumnya - gagal ketika daftar dengan nol saja disertakan:
d(l)
secara rekursif meratakan daftarl
, sambil menyaring angka nol dan mengubah angka menjadi string.sumber
a and b or c
alih-alih Ca?b:c
, tetapi gagal ketikab
dievaluasi menjadi false (daftar kosong dalam kasus ini).Scala, 42 karakter
Dipatenkan string oleh non-digit dan non-digit diikuti oleh nol.
sumber
Prolog (79)
Ini memasukkan daftar sebagai istilah, jadi Anda harus memberi tanda '.' setelah daftar di input.
Sebenarnya daftar perataan.
sumber
APL (Dyalog) , 4 byte
Cobalah online!
0~⍨
nol dihapus dari∊
data ϵ yang terdaftar (diratakan)sumber
Stax , 2 byte
Jalankan dan debug itu
$
rata.f
adalah memfilter nilai falsey dan mencetak pada baris yang berbeda.sumber
Scala 147:
Bekerja pada daftar nyata, bukan pada string:
Sekarang datanya:
sumber
bash: 29 karakter
menghitung baris 2 hanya tanpa 'gema $ l |'. Tes untuk 3 sampel:
sumber
Tcl , 47 byte
Cobalah online!
Dengan asumsi kedalaman 4 adalah sesuatu seperti
{{{{5}}}}
. Karena tidak ada contoh dari hal-hal seperti itu pada kasus-kasus uji, mungkin itu seperti{{{5}}}
; jika itu saya bisa membuat kode saya lebih pendek!Tcl , 66 byte
Cobalah online!
sumber
Pyth, 5 byte
Suite uji
sumber
R , 29 byte
Cobalah online!
unlist
mengubah daftar menjadiatomic
vector
rekursif, jadi kita hanya perlu menyaring elemen nol.sumber
JavaScript (Node.js) , 53 byte
Cobalah online!
sumber
Brachylog , 8 byte
Cobalah online!
Membawa input melalui variabel input dan mencetak output yang dipisahkan oleh baris baru. Biasanya saya akan mengeluh tentang format output, tetapi itu benar-benar menyelamatkan saya byte dengan cara yang saya mungkin tidak berpikir sebaliknya - meletakkan
ẉ⊥
pada akhirnya lebih pendek daripada membungkusnya{}ᶠ
.Jika item daftar tidak dibatasi sebagai bilangan bulat non-negatif:
Brachylog , 11 byte
Cobalah online!
sumber
PHP , 70 byte
Cobalah online!
Ini tidak akan menjadi yang terpendek (atau yang terpanjang), tetapi mengira itu akan menjadi kesempatan untuk digunakan
array_walk_recursive()
, yang sampai hari ini saya tidak bisa memikirkan pernah menggunakannya untuk itu! Setidaknya itu harus dapat menangani daftar bersarang tingkat dalam sewenang-wenang.sumber
Bahasa Wolfram (Mathematica) , 37 byte
Cobalah online!
sumber