Beschreibung der Herausforderung
Zeigen Sie bei einer Liste / einem Array von Elementen alle Gruppen aufeinanderfolgender sich wiederholender Elemente an.
Eingabe / Ausgabe Beschreibung
Ihre Eingabe ist eine Liste / ein Array von Elementen (Sie können davon ausgehen, dass alle vom gleichen Typ sind). Sie müssen nicht jeden Typ unterstützen, den Ihre Sprache hat, sondern mindestens einen (vorzugsweise int
, aber Typen wie boolean
, obwohl nicht sehr interessant, sind auch in Ordnung). Beispielausgaben:
[4, 4, 2, 2, 9, 9] -> [[4, 4], [2, 2], [9, 9]]
[1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4] -> [[1, 1, 1], [2, 2], [3, 3, 3], [4, 4, 4, 4]]
[1, 1, 1, 3, 3, 1, 1, 2, 2, 2, 1, 1, 3] -> [[1, 1, 1], [3, 3], [1, 1], [2, 2, 2], [1, 1], [3]]
[9, 7, 8, 6, 5] -> [[9], [7], [8], [6], [5]]
[5, 5, 5] -> [[5, 5, 5]]
['A', 'B', 'B', 'B', 'C', 'D', 'X', 'Y', 'Y', 'Z'] -> [['A'], ['B', 'B', 'B'], ['C'], ['D'], ['X'], ['Y', 'Y'], ['Z']]
[True, True, True, False, False, True, False, False, True, True, True] -> [[True, True, True], [False, False], [True], [False, False], [True, True, True]]
[0] -> [[0]]
Bei leeren Listen ist die Ausgabe undefiniert - es kann sich um nichts, eine leere Liste oder eine Ausnahme handeln - was auch immer für Ihre Golfzwecke am besten geeignet ist. Sie müssen auch keine separate Liste von Listen erstellen, daher ist dies auch eine absolut gültige Ausgabe:
[1, 1, 1, 2, 2, 3, 3, 3, 4, 9] ->
1 1 1
2 2
3 3 3
4
9
Das Wichtigste ist, die Gruppen auf irgendeine Weise getrennt zu halten.
int
s, das zum Beispiel durch s getrennt ist, 0
wäre eine schlechte Idee, da es 0
s in der Eingabe geben kann ...
[4, 4, '', 2, 2, '', 9, 9]
oder [4, 4, [], 2, 2, [], 9, 9]
.