Descrição do Desafio
Dada uma lista / matriz de itens, exiba todos os grupos de itens repetidos consecutivos.
Descrição de entrada / saída
Sua entrada é uma lista / matriz de itens (você pode assumir que todos são do mesmo tipo). Você não precisa dar suporte a todos os tipos que seu idioma possui, mas deve suportar pelo menos um (de preferência int
, mas tipos como boolean
, embora não sejam muito interessantes, também são bons). Saídas de amostra:
[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]]
Quanto às listas vazias, a saída é indefinida - não pode ser nada, uma lista vazia ou uma exceção - o que melhor se adapte aos seus objetivos de golfe. Você também não precisa criar uma lista separada de listas, portanto, essa é uma saída perfeitamente válida:
[1, 1, 1, 2, 2, 3, 3, 3, 4, 9] ->
1 1 1
2 2
3 3 3
4
9
O importante é manter os grupos separados de alguma forma.
int
s separados por, por exemplo, 0
s seria uma má idéia, pois pode haver 0
s na entrada ...
[4, 4, '', 2, 2, '', 9, 9]
ou [4, 4, [], 2, 2, [], 9, 9]
.