Semua orang suka daftar bersarang! Namun, terkadang sulit untuk membuat daftar bersarang. Anda harus memutuskan apakah Anda ingin membuatnya lebih dalam, atau jika Anda perlu membuatnya lebih dangkal. Jadi untuk tantangan Anda, Anda harus "Autonest" daftar. Untuk autonest daftar, bandingkan setiap pasangan item dalam daftar.
Jika item kedua lebih kecil, pisahkan kedua elemen dengan memasukkan tanda kurung tutup dan buka di antaranya, seperti ini:
} { {2 , 1}
Misalnya,
{2, 1}
menjadi{2}, {1}
, dan{3, 2, 1}
menjadi{3}, {2}, {1}
Jika item kedua sama, maka tidak ada perubahan. Misalnya,
{1, 1, 1}
tetap sama, dan{2, 1, 1, 1}
akan menjadi{2}, {1, 1, 1}
.Jika item kedua lebih besar, maka sarang setiap item berikut satu tingkat lebih dalam. Misalnya,
{1, 2}
akan menjadi{1, {2}}
dan{1, 2, 3}
akan menjadi{1, {2, {3}}}
Tantangan
Anda harus menulis program atau fungsi yang memuat daftar angka, dan mengembalikan daftar yang sama setelah diautonisasi. Ambil input ini dalam format daftar asli bahasa Anda (atau alternatif terdekat) atau sebagai string. Anda tidak harus menggunakan kurung kurawal seperti yang saya lakukan dalam contoh saya. Anda dapat menggunakan jenis kurung mana saja yang paling alami dalam bahasa Anda, selama ini konsisten. Anda dapat dengan aman menganggap daftar hanya akan berisi bilangan bulat Anda juga dapat mengasumsikan daftar tersebut memiliki setidaknya 2 angka di dalamnya. Berikut ini beberapa contoh IO:
{1, 3, 2} --> {1, {3}, {2}}
{1, 2, 3, 4, 5, 6} --> {1, {2, {3, {4, {5, {6}}}}}}
{6, 5, 4, 3, 2, 1} --> {6}, {5}, {4}, {3}, {2}, {1}
{7, 3, 3, 2, 6, 4} --> {7}, {3, 3}, {2, {6}, {4}}
{7, 3, 1, -8, 4, 8, 2, -9, 2, 8} --> {7}, {3}, {1}, {-8, {4, {8}, {2}, {-9, {2, {8}}}}}
Celah standar berlaku, dan jawaban tersingkat dalam byte menang!
[-100, 100]
tetapi saya tidak berencana memberikan input raksasa.
{2, 1}
menjadi {2}, {1}
" Bagaimana itu satu tingkat lebih tinggi ? Satu tingkat lebih tinggi adalah {2}, 1
. Apa yang Anda miliki adalah level yang sama.