Défi
Votre tâche pour cette question consiste à diviser un tableau d'entrée d'entiers à la deuxième occurrence de chaque entier de ce tableau.
Pas assez clair? Voici un exemple pour vous aider
Tableau d'entrée:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5]
Production:
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Explication:
Voici le tableau avec juste le deuxième élément mis en évidence en gras:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5 ]
Maintenant, nous plaçons les blocs de tableau de fractionnement autour de ces secondes occurrences en gras:
[2 1] 1 [] 2 [3 2 2 4 5 6 7] 3 [] 7 [0] 5 []
et envelopper ces tableaux fractionnés dans un tableau pour obtenir la finale
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Notez que lorsque des secondes occurrences adjacentes se produisent, il y aura des tableaux vides.
Règles
Comme d'habitude, vous devez écrire un programme complet ou une fonction prenant le tableau d'entrée via STDIN, ARGV ou un argument de fonction.
Contribution
L'entrée se compose de n'importe quel format de tableau (ou de type tableau) d'entiers.
Par exemple, l'un des éléments suivants serait acceptable:
2 1 1 1 4 5 6
[2 1 1 1 4 5 6]
[2, 1, 1, 1, 4, 5, 6]
Production
Lors de la sortie vers STDOUT, votre tableau peut également être imprimé dans n'importe quel format de tableau (imbriqué) pratique, par exemple l'un des
[[2 1] [1 4 5 6]]
[[2, 1], [1, 4, 5, 6]]
{{2, 1}, {1, 4, 5, 6}}
(Ce sera généralement la représentation sous forme de chaîne native des tableaux dans votre langue.)
Notez également que les tableaux vides de fin doivent être imprimés en tant que partie du tableau.
Notation
C'est le code-golf donc le code le plus court en octets gagne!
""
le tableau vide? Cela sent le favoritisme envers une langue de golf spécifique.
2 1, 1 4 5 6
?