El desafío es realmente simple: dado un número, se dividen sus dígitos en una matriz de números más pequeños de modo que los números resultantes no disminuyan. El problema es que debe dividirlo de modo que la longitud de la matriz sea máxima.
¿Confuso?
- Se le da un número entero positivo a través de STDIN (o la alternativa más cercana), argumento de línea de comando o argumento de función en cualquier formato de entrada conveniente y sin ambigüedades.
- Debe dividir los dígitos decimales del número en grupos contiguos y disjuntos.
- La matriz de números representados por estos grupos de dígitos debe ordenarse (en el orden habitual, no decreciente) sin reorganizar los grupos .
- En los casos en que exista más de una de estas particiones, debe dividir la entrada en tantos números como sea posible. En caso de empate, devuelva uno de esos resultados.
- Puede enviar la matriz a STDOUT (o la alternativa más cercana) o como un valor de retorno de función. En el caso de STDOUT (o la alternativa más cercana), la matriz debe imprimirse en cualquier formato de lista conveniente y sin ambigüedades.
- Los números divididos no deben tener ceros a la izquierda. Entonces, por ejemplo
1002003
, no se puede imprimir como o[1, 002, 003]
o[1, 2, 3]
y la única respuesta válida es[100, 2003]
.
Casos de prueba:
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]
Puntuación
Este es el código de golf, por lo que el código más corto en bytes gana.
aY
lugar de~Y]