Wyzwanie
Twoim zadaniem jest podzielenie wejściowej tablicy liczb całkowitych przy drugim wystąpieniu każdej liczby całkowitej w tej tablicy.
Nie dość jasne? Oto przykład, aby pomóc
Tablica wejściowa:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5]
Wynik:
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Wyjaśnienie:
Oto tablica z drugim elementem wyróżnionym pogrubioną czcionką:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5 ]
Teraz umieszczamy bloki tablicy rozdzielającej wokół tych odważnych drugich wystąpień:
[2 1] 1 [] 2 [3 2 2 4 5 6 7] 3 [] 7 [0] 5 []
i zawiń te podzielone tablice do tablicy, aby uzyskać finał
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Zauważ, że gdy wystąpią sąsiednie drugie wystąpienia, pojawią się puste tablice.
Zasady
Jak zwykle, musisz napisać pełny program lub funkcję, biorąc tablicę wejściową przez STDIN, ARGV lub argument funkcji.
Wejście
Dane wejściowe składają się z dowolnego wygodnego formatu liczb całkowitych (lub podobnego do tablicy).
Na przykład akceptowalny byłby jeden z poniższych:
2 1 1 1 4 5 6
[2 1 1 1 4 5 6]
[2, 1, 1, 1, 4, 5, 6]
Wynik
Podczas wysyłania do STDOUT, twoja tablica może być również wydrukowana w dowolnym wygodnym (zagnieżdżonym) formacie macierzy, np. Jednym z
[[2 1] [1 4 5 6]]
[[2, 1], [1, 4, 5, 6]]
{{2, 1}, {1, 4, 5, 6}}
(Zwykle będzie to natywna reprezentacja ciągu tablic w Twoim języku).
Zwróć także uwagę, że końcowe tablice powinny być drukowane jako część tablicy.
Punktacja
To jest golf golfowy, więc wygrywa najkrótszy kod w bajtach!
""na pustą tablicę? To pachnie faworyzowaniem określonego języka golfowego.
2 1, 1 4 5 6?