この StackOverflowの投稿に触発されました。
前書き
ボブの仕事は、スプレッドシートを作成して整理することです。彼がそれらを整理する方法は、ボブを除いてほとんど知られていないが、同じグループに属する各スプレッドシートのリストを作成する。彼が作成したスプレッドシートには大量のデータがありますが、現在確認しているデータは1つだけです。このジョブを開始してからスプレッドシートを作成した日までの日数です。初日、彼は2つのスプレッドシートを作成し、両方のメモを書き、0適切な場所に分類しました。
現在、彼の上司は毎日どのような種類のスプレッドシートが発生したかをレビューするよう求めています。ボブにとってそれを把握するコードを書くのはあなたの仕事です。彼はスプレッドシートが多すぎて手作業ではできません。
入力
彼があなたに提供するボブの情報は、各データがの形式である(0または1のインデックス付き)ギザギザの配列の形式で提供されx = a[i][j]ます。 aは、私がジャグ配列自体と呼んでいるものでiあり、スプレッドシートのタイプでありx、配列が作成された日付です。 j重要ではありません。
タスク
タイプごとに整理されたスプレッドシート作成日のぎざぎざの配列がある場合、スプレッドシート作成日ごとに整理されたスプレッドシートの種類のぎざぎざの配列を返します。
例
ボブは、この抽象的なデータをただ残すだけではありません。彼は、スプレッドシートの一部のサブセットを提供してくれて、すべてがどうあるべきかを理解するのを助けてくれます。
入力例(0から始まる):
a = [
[3,2,5,0], # Bob doesn't necessarily sort his lists
[1,3],
[2,1,0,4],
[4,5,3],
[6,6]
]
出力例(コメントはもちろん必須ではありません):
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
]
ボブは毎日2つのスプレッドシートを作成するわけではないため、出力もギザギザになる場合があります。しかし、彼は毎日少なくとも1つのスプレッドシートを作成しているため、出力に空の配列を含める必要はありません。ただし、出力に最後に空の配列がある場合は、削除する必要はありません。
その他のテストケース:
[[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]]
出力の内部リストをソートする必要はありません。
いつものように、標準的な抜け穴はなく、もちろん最短のコードが勝ちます。
(これが私の最初の質問なので、改善するためにできることは何でも教えてください。)
[[0 0]]、出力を与えることができます[[0 0] []]か?