Desafío
Su tarea para esta pregunta es dividir una matriz de entrada de enteros en la segunda aparición de cada entero en esa matriz.
¿No está lo suficientemente claro? Aquí hay un ejemplo para ayudar
Matriz de entrada:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5]
Salida:
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Explicación:
Aquí está la matriz con solo el segundo elemento resaltado en negrita:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5 ]
Ahora colocamos los bloques de la matriz de división alrededor de estas segundas ocurrencias en negrita:
[2 1] 1 [] 2 [3 2 2 4 5 6 7] 3 [] 7 [0] 5 []
y envolver estas matrices divididas en una matriz para obtener el resultado final
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Tenga en cuenta que cuando ocurran segundas ocurrencias adyacentes, habrá matrices vacías.
Reglas
Como de costumbre, debe escribir un programa completo o una función que tome la matriz de entrada a través de STDIN, ARGV o argumento de función.
Entrada
La entrada consiste en cualquier formato de matriz conveniente (o tipo matriz) de enteros.
Por ejemplo, cualquiera de los siguientes sería aceptable:
2 1 1 1 4 5 6
[2 1 1 1 4 5 6]
[2, 1, 1, 1, 4, 5, 6]
Salida
Al salir a STDOUT, su matriz también se puede imprimir en cualquier formato conveniente (anidado) de matriz, por ejemplo, uno de
[[2 1] [1 4 5 6]]
[[2, 1], [1, 4, 5, 6]]
{{2, 1}, {1, 4, 5, 6}}
(Esta suele ser la representación de cadenas nativas de matrices en su idioma).
También tenga en cuenta que las matrices vacías finales deben imprimirse como parte de la matriz.
Puntuación
Este es el código de golf, ¡el código más corto en bytes gana!
""como la matriz vacía? Esto huele a favoritismo hacia un lenguaje de golf específico.
2 1, 1 4 5 6?