Die Herausforderung ist denkbar einfach: Bei einer bestimmten Zahl teilen Sie die Ziffern in ein Array kleinerer Zahlen auf, sodass die resultierenden Zahlen nicht abnehmen. Der Haken ist, dass Sie es so aufteilen müssen, dass die Array-Länge maximal ist.
Verwirrt?
- Sie erhalten eine positive Ganzzahl über STDIN (oder die nächstgelegene Alternative), ein Befehlszeilenargument oder ein Funktionsargument in einem beliebigen praktischen, eindeutigen Eingabeformat.
- Sie müssen die Dezimalstellen der Zahl in zusammenhängende, nicht zusammenhängende Gruppen unterteilen.
- Das durch diese Zifferngruppen dargestellte Zahlenfeld sollte sortiert werden (in der üblichen, nicht abnehmenden Reihenfolge), ohne die Gruppen neu anzuordnen .
- In Fällen, in denen mehr als eine solche Partition vorhanden ist, müssen Sie die Eingabe in so viele Zahlen wie möglich unterteilen. Geben Sie bei Gleichstand ein solches Ergebnis zurück.
- Sie können das Array an STDOUT (oder die nächstgelegene Alternative) oder als Funktionsrückgabewert ausgeben. Im Falle von STDOUT (oder der nächstgelegenen Alternative) sollte das Array in einem geeigneten, eindeutigen Listenformat gedruckt werden.
- Die aufgeteilten Zahlen sollten keine führenden Nullen haben. So kann zum Beispiel
1002003
nicht als[1, 002, 003]
oder gedruckt werden[1, 2, 3]
und die einzig gültige Antwort ist[100, 2003]
.
Testfälle:
123456 -> [1, 2, 3, 4, 5, 6]
345823 -> [3, 4, 5, 8, 23]
12345678901234567890 -> [1, 2, 3, 4, 5, 6, 7, 8, 90, 123, 456, 7890]
102 -> [102]
302 -> [302]
324142 -> [3, 24, 142] OR [32, 41, 42]
324142434445 -> [32, 41, 42, 43, 44, 45]
1356531 -> [1, 3, 5, 6, 531]
11121111111 -> [1, 1, 1, 2, 11, 11, 111]
100202003 -> [100, 202003]
Wertung
Das ist Code-Golf, also gewinnt der kürzeste Code in Bytes.
aY
anstelle von~Y]