挑战说明
给定一个项目列表/数组,显示所有连续重复项目的组。
输入/输出说明
您的输入是一个列表/项目数组(您可以假设所有项目都是同一类型)。您不需要支持您的语言所拥有的每种类型,而必须支持至少一种int
类型(最好是,但是像这样的类型boolean
,虽然不是很有趣,但是也可以)。样本输出:
[4, 4, 2, 2, 9, 9] -> [[4, 4], [2, 2], [9, 9]]
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4] -> [[1, 1, 1], [2, 2], [3, 3, 3], [4, 4, 4, 4]]
[1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 1, 1, 3] -> [[1, 1, 1], [3, 3], [1, 1], [2, 2, 2], [1, 1], [3]]
[9, 7, 8, 6, 5] -> [[9], [7], [8], [6], [5]]
[5, 5, 5] -> [[5, 5, 5]]
['A', 'B', 'B', 'B', 'C', 'D', 'X', 'Y', 'Y', 'Z'] -> [['A'], ['B', 'B', 'B'], ['C'], ['D'], ['X'], ['Y', 'Y'], ['Z']]
[True, True, True, False, False, True, False, False, True, True, True] -> [[True, True, True], [False, False], [True], [False, False], [True, True, True]]
[0] -> [[0]]
至于空列表,输出是不确定的-可以是什么,也可以是空列表,也可以是例外-最佳地适合您的高尔夫目的。您也不必创建单独的列表列表,因此这也是一个非常有效的输出:
[1, 1, 1, 2, 2, 3, 3, 3, 4, 9] ->
1 1 1
2 2
3 3 3
4
9
重要的是要以某种方式使组分开。
int
用例如s分隔的s 数组0
将是一个坏主意,因为0
输入中可以有s ...
[4, 4, '', 2, 2, '', 9, 9]
或[4, 4, [], 2, 2, [], 9, 9]
。