Terinspirasi oleh pos StackOverflow ini .
pengantar
Tugas Bob adalah membuat spreadsheet dan mengaturnya. Cara dia mengaturnya diketahui sangat sedikit kecuali untuk Bob, tetapi dia membuat daftar masing-masing spreadsheet yang termasuk dalam kelompok yang sama. Ada banyak data dalam spreadsheet yang ia buat, tetapi hanya ada satu data yang sedang kami lihat saat ini: Jumlah hari antara hari ia memulai pekerjaan ini dan hari ia membuat spreadsheet. Hari pertama ia membuat dua spreadsheet, mencatat keduanya sebagai 0
dan mengurutkannya ke lokasi yang tepat.
Sekarang, bosnya meminta ulasan tentang jenis spreadsheet apa yang terjadi setiap hari, dan tugas Anda untuk menulis beberapa kode yang akan mencari tahu apa yang terjadi pada Bob; dia memiliki terlalu banyak spreadsheet untuk melakukannya dengan tangan.
Memasukkan
Info Bob yang ia berikan kepada Anda datang dalam bentuk array bergerigi (0-atau-1) di mana setiap datum berbentuk x = a[i][j]
. a
adalah apa yang saya sebut array bergerigi itu sendiri, i
adalah jenis spreadsheet, dan x
merupakan tanggal array dibuat. j
tidak penting.
Tugas
Diberikan array bergerigi dari hari pembuatan spreadsheet yang disusun berdasarkan jenisnya, kembalikan array bergerigi dari tipe spreadsheet yang diatur oleh hari pembuatan spreadsheet.
Contohnya
Bob tidak akan hanya meninggalkan Anda dengan data abstrak ini. Dia memberi saya bagian dari beberapa spreadsheet untuk membantu Anda mencari tahu apa yang seharusnya terjadi.
Input contoh (0-diindeks):
a = [
[3,2,5,0], # Bob doesn't necessarily sort his lists
[1,3],
[2,1,0,4],
[4,5,3],
[6,6]
]
Contoh output (dengan komentar, yang tentu saja tidak diperlukan):
output = [
[0,2] # On day 0, Bob made one type 0 and one type 2 spreadsheet
[1,2] # On day 1, Bob made one type 1 and one type 2 spreadsheet
[0,2] # On day 2, Bob made one type 0 and one type 2 spreadsheet
[0,1,3] # On day 3, Bob made one type 0, one type 1, and one type 3 spreadsheet
[2,3] # On day 4, Bob made one type 2 and one type 3 spreadsheet
[0,3] # On day 5, Bob made one type 0 and one type 3 spreadsheet
[4,4] # On day 6, Bob made two type 4 spreadsheets
]
Perhatikan bahwa Bob tidak selalu membuat dua spreadsheet setiap hari, dan hasilnya mungkin juga bergerigi. Tapi dia selalu membuat setidaknya satu spreadsheet setiap hari, jadi outputnya tidak perlu mengandung array kosong - walaupun jika output Anda memiliki array kosong di akhir, Anda tidak perlu menghapusnya.
Lebih banyak kasus uji:
[[3,5,6,2],[0,0,0],[1,0,3,4]] -> [[1,1,1,2],[2],[0],[0,2],[2],[0],[0]]
[[-1]] -> Undefined behavior, as all input numbers will be non-negative integers.
[[0],[0],[],[0]] -> [[0,1,3]]
Daftar bagian dalam output tidak perlu disortir.
Seperti biasa, tidak ada celah standar, dan tentu saja kode terpendek menang.
(Karena ini adalah pertanyaan pertama saya, beri tahu saya apa pun yang dapat saya lakukan untuk memperbaikinya.)
[[0 0]]
memberi output [[0 0] []]
?