Desafio
A tarefa desta pergunta é dividir uma matriz de entrada de números inteiros na segunda ocorrência de cada número inteiro nessa matriz.
Não está claro o suficiente? Aqui está um exemplo para ajudar
Matriz de entrada:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5]
Resultado:
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Explicação:
Aqui está a matriz com apenas o segundo elemento destacado em negrito:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5 ]
Agora, colocamos os blocos de matriz divididos em torno dessas ocorrências em segundos em negrito:
[2 1] 1 [] 2 [3 2 2 4 5 6 7] 3 [] 7 [0] 5 []
e agrupe essas matrizes divididas em uma matriz para obter a final
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Observe que quando ocorrem segundas ocorrências adjacentes, haverá matrizes vazias.
Regras
Como de costume, você deve escrever um programa completo ou uma função utilizando a matriz de entrada via STDIN, ARGV ou argumento de função.
Entrada
A entrada consiste em qualquer formato de matriz conveniente (ou semelhante a matriz) de números inteiros.
Por exemplo, qualquer um dos seguintes itens seria aceitável:
2 1 1 1 4 5 6
[2 1 1 1 4 5 6]
[2, 1, 1, 1, 4, 5, 6]
Resultado
Ao enviar para STDOUT, sua matriz também pode ser impressa em qualquer formato conveniente (aninhado) de matriz, por exemplo, um dos
[[2 1] [1 4 5 6]]
[[2, 1], [1, 4, 5, 6]]
{{2, 1}, {1, 4, 5, 6}}
(Geralmente, essa é a representação de string nativa de matrizes no seu idioma.)
Observe também que as matrizes vazias à direita devem ser impressas como parte da matriz.
Pontuação
Este é o código-golfe, pelo que o código mais curto em bytes ganha!
""
como a matriz vazia? Isso cheira a favor de uma linguagem específica do golfe.
2 1, 1 4 5 6
?