Задача действительно проста: учитывая число, вы разбиваете его цифры на массив меньших чисел, так что результирующие числа не убывают. Уловка в том, что вы должны разделить его так, чтобы длина массива была максимальной.
Смущенный?
- Вам предоставляется положительное целое число через STDIN (или ближайшую альтернативу), аргумент командной строки или аргумент функции в любом удобном, однозначном формате ввода.
- Вы должны разделить десятичные цифры числа на смежные, непересекающиеся группы.
- Массив чисел, представленных этими группами цифр, должен быть отсортирован (в обычном неубывающем порядке) без перестановки групп .
- В тех случаях, когда существует более одного такого раздела, вы должны разбить входные данные на максимально возможное число. В случае связей верните один такой результат.
- Вы можете вывести массив в STDOUT (или ближайшую альтернативу) или в качестве возвращаемого значения функции. В случае STDOUT (или ближайшей альтернативы), массив должен быть напечатан в любом удобном, однозначном формате списка.
- Разделенные числа не должны иметь начальных нулей. Так, например,
1002003
не может быть напечатан как или[1, 002, 003]
или[1, 2, 3]
и единственный правильный ответ для этого является[100, 2003]
.
Тестовые случаи:
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]
счет
Это код-гольф, поэтому выигрывает самый короткий код в байтах.
aY
вместо~Y]