Bu StackOverflow yayınından ilham alındı .
Giriş
Bob'un işi elektronik tablolar oluşturmak ve bunları organize etmektir. Onları organize etme şekli Bob dışında çok az kişi tarafından bilinir, ancak aynı gruba giren her bir elektronik tablonun bir listesini oluşturur. Oluşturduğu e-tabloda bir sürü veri var, ancak şu anda baktığımız tek bir veri parçası var: Bu işe başladığı gün ile e-tabloyu yaptığı gün arasındaki gün sayısı. İlk gün iki e-tablo oluşturdu, ikisini de not etti 0
ve uygun yerlerine sıraladı.
Şimdi, patronu her gün ne tür bir e-tablo olduğunu gözden geçirmeyi istiyor ve Bob için bunu anlayacak bir kod yazmak sizin işiniz; elle yapmak için çok fazla e-tablo var.
Giriş
Bob'un size verdiği bilgi, her datumun formda olduğu bir (0 veya 1 endeksli) pürüzlü dizi şeklinde gelir x = a[i][j]
. a
pürüzlü dizinin kendisini çağırdığım i
şey, elektronik tablonun türü x
ve dizinin oluşturulduğu tarihtir. j
önemsizdir.
Görev
Türlerine göre düzenlenmiş tırtıklı bir e-tablo oluşturma günleri göz önüne alındığında, e-tablo oluşturma gününe göre düzenlenmiş tırtıklı bir e-tablo türleri dizisi döndürün.
Örnekler
Bob sizi bu soyut verilerle bırakmayacak. Bana her şeyin ne olması gerektiğini anlamanıza yardımcı olması için bazı elektronik tablolarının alt kümesini verdi.
Örnek giriş (0 dizinli):
a = [
[3,2,5,0], # Bob doesn't necessarily sort his lists
[1,3],
[2,1,0,4],
[4,5,3],
[6,6]
]
Örnek çıktı (yorum ile birlikte, elbette gerekli değildir):
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
]
Bob'un her gün iki e-tablo yapmadığını ve bu nedenle çıktının da pürüzlü olabileceğini unutmayın. Ancak her gün her zaman en az bir e-tablo oluşturur, bu nedenle çıktının asla boş diziler içermesi gerekmez - sonuçta boş diziler varsa, bunları kaldırmanız gerekmez.
Daha fazla test örneği:
[[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]]
Çıktının iç listelerinin sıralanması gerekmez.
Her zaman olduğu gibi standart boşluklar yok ve elbette en kısa kod kazanıyor.
(Bu benim ilk sorum olduğu için, lütfen geliştirmek için yapabileceğim her şeyi bana bildirin.)
[[0 0]]
çıktı verebilir [[0 0] []]
mi?