Reto:
Dada una lista de enteros, ordene descendiendo por sus dígitos más grandes. El orden de los números con el mismo dígito más grande se ordena por el segundo dígito más grande, etc.
Ignoramos los dígitos duplicados en los números. Y si todos los dígitos de un número son iguales, el orden de esos números en la lista puede ser de la forma que desee.
Ejemplo:
Input: [123, 478, -904, 62778, 0, -73, 8491, 3120, 6458, -7738, 373]
Possible outputs: [8491, -904, 62778, 478, -7738, 6458, 373, -73, 3120, 123, 0]
[8491, -904, 62778, 478, -7738, 6458, -73, 373, 3120, 123, 0]
¿Por qué? Estos son los dígitos relevantes en los que se ordenaron los números:
Output:
[8491, -904, 62778, 478, -7738, 6458, 373, -73, 3120, 123, 0 ]
Relevant digits they were sorted on:
[[9,8], [9,4], [8,7,6], [8,7,4], [8,7,3], [8,6], [7,3], [7,3], [3,2,1,0], [3,2,1], [0]]
Reglas de desafío:
- Ignoramos dígitos duplicados, así
478
y-7738
se ordenan como478, -7738
, debido a que las cifras son más grandes[8,7,4]
y[8,7,3]
, y no[8,7,4]
e[8,7,7,3]
. - Si varios números tienen los mismos dígitos, el orden de esos puede ser de cualquier manera. Entonces,
373
y-73
se puede ordenar como ambos373, -73
o-73, 373
(los dígitos son[7,3]
para ambos números). - Si un número no contiene más dígitos para verificar, se colocará en la parte posterior de los números relevantes. Entonces,
123
y3120
se ordenará como3120, 123
, porque los dígitos más grandes[3,2,1]
son los mismos, pero0
vienen antesnone
. - Puede suponer que todos los números en la entrada están en el rango
[-999999,999999]
. - Como resultado, solo una de las salidas posibles es suficiente, pero puede emitir todas las salidas posibles donde las sublistas pueden estar en cualquier permutación si lo desea (aunque dudo que ahorre bytes en cualquier idioma).
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolfing. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba:
Input: [123, 478, -904, 62778, 0, -73, 8491, 3120, 6458, -7738, 373]
Possible outputs: [8491, -904, 62778, 478, -7738, 6458, 373, -73, 3120, 123, 0]
[8491, -904, 62778, 478, -7738, 6458, -73, 373, 3120, 123, 0]
Input: [11, -312, 902, 23, 321, 2132, 34202, -34, -382]
Possible outputs: [902, -382, 34202, -34, -312, 321, 2132, 23, 11]
[902, -382, 34202, -34, 2132, -312, 321, 23, 11]
etc. The sublist [-312, 321, 2132] can be in any permutation
Input: [9, 44, 2212, 4, 6, 6, 1, 2, 192, 21, 29384, 0]
Possible outputs: [29384, 192, 9, 6, 6, 4, 44, 2212, 21, 2, 1, 0]
[29384, 192, 9, 6, 6, 44, 4, 2212, 21, 2, 1, 0]
etc. The sublists [4, 44] and [2212, 21] can be in any permutation
Input: [44, -88, 9, 233, -3, 14, 101, 77, 555, 67]
Output: [9, -88, 67, 77, 555, 14, 44, 233, -3, 101]
m:g/\d./
por.abs.comb
: tio.run/…