Sfida
Il compito di questa domanda è quello di dividere un array di input di numeri interi alla seconda occorrenza di ogni numero intero in quel array.
Non abbastanza chiaro? Ecco un esempio per aiutare
Matrice di input:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5]
Produzione:
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Spiegazione:
Ecco l'array con solo il secondo elemento evidenziato in grassetto:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5 ]
Ora mettiamo i blocchi dell'array di divisione attorno a queste seconde occorrenze:
[2 1] 1 [] 2 [3 2 2 4 5 6 7] 3 [] 7 [0] 5 []
e avvolgi questi array divisi in un array per ottenere il finale
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Si noti che quando si verificano seconde occorrenze adiacenti, ci saranno array vuoti.
Regole
Come al solito, è necessario scrivere un programma completo o una funzione prendendo l'array di input tramite STDIN, ARGV o argomento della funzione.
Ingresso
L'input consiste in qualsiasi formato di array conveniente (o simile a array) di numeri interi.
Ad esempio, sarebbe accettabile una delle seguenti condizioni:
2 1 1 1 4 5 6
[2 1 1 1 4 5 6]
[2, 1, 1, 1, 4, 5, 6]
Produzione
Quando si invia a STDOUT, l'array può anche essere stampato in qualsiasi formato di array conveniente (nidificato), ad esempio uno di
[[2 1] [1 4 5 6]]
[[2, 1], [1, 4, 5, 6]]
{{2, 1}, {1, 4, 5, 6}}
(Questa sarà in genere la rappresentazione di stringhe native degli array nella tua lingua.)
Si noti inoltre che gli array vuoti finali devono essere stampati come parte dell'array.
punteggio
Questo è code-golf quindi il codice più breve in byte vince!
""
come array vuoto? Questo profuma di favourismo verso un linguaggio golfistico specifico.
2 1, 1 4 5 6
?