灵感来自这个 StackOverflow的职位。
介绍
Bob的工作是创建电子表格并对其进行组织。除Bob以外,很少有人知道他组织这些文件的方式,但是他创建了属于同一组的每个电子表格的列表。他创建的电子表格中有很多数据,但是现在我们只查看其中的一条数据:从他开始工作到创建电子表格之间的天数。第一天,他创建了两个电子表格,将它们都记录下来,0
然后将它们分类到正确的位置。
现在,他的老板要求对每天发生的电子表格种类进行审查,编写一些代码来为Bob找出答案是您的工作。他手头上有太多电子表格。
输入值
鲍勃(Bob)提供给您的信息是以(0或1索引)锯齿状数组的形式出现的,每个数据的形式都是x = a[i][j]
。 a
是我所说的锯齿状数组本身,i
是电子表格的类型,x
也是数组创建的日期。 j
不重要。
任务
给定按类型划分的电子表格创建日期的锯齿形数组,返回按电子表格创建日组织的电子表格类型的锯齿形数组。
例子
Bob不会只留下这些抽象数据。他给了我一些电子表格的一个子集,以帮助您弄清楚应该是什么。
输入示例(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
]
请注意,鲍勃并非总是每天都制作两个电子表格,因此输出也可能会参差不齐。但是他每天总是至少制作一个电子表格,因此输出永远不需要包含空数组-尽管如果输出的末尾有空数组,则不需要删除它们。
更多测试用例:
[[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] []]
?