Desafio:
Dada uma lista de números inteiros, classifique decrescente pelo (s) maior (s) dígito (s). A ordem dos números com o mesmo dígito maior é classificada pelo segundo maior dígito, etc.
Ignoramos dígitos duplicados nos números. E se todos os dígitos de um número forem iguais, a ordem desses números na lista poderá ser da maneira que você desejar.
Exemplo:
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ê? Aqui estão os dígitos relevantes em que os números foram classificados:
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]]
Regras do desafio:
- Ignoramos dígitos duplicados, portanto,
478
e-7738
serão ordenados como478, -7738
, porque os dígitos maiores são[8,7,4]
e[8,7,3]
, e não[8,7,4]
e[8,7,7,3]
. - Se vários números tiverem os mesmos dígitos, a ordem deles poderá ser de qualquer maneira. Portanto,
373
e-73
pode ser classificado como ambos373, -73
ou-73, 373
(os dígitos são[7,3]
para esses dois números). - Se um número não contiver mais dígitos a serem verificados, será colocado na parte de trás dos números relevantes. Portanto,
123
e3120
será classificado como3120, 123
, porque os dígitos maiores[3,2,1]
são os mesmos, mas0
vêm antesnone
. - Você pode assumir que todos os números na entrada estão no intervalo
[-999999,999999]
. - Apenas uma das saídas possíveis é suficiente como resultado, mas você pode gerar todas as saídas possíveis, onde as sublistas podem estar em qualquer permutação, se você quiser (embora eu duvide que isso salvaria bytes em qualquer idioma).
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta com as regras de E / S padrão , para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código (ou seja, TIO ).
- Além disso, é altamente recomendável adicionar uma explicação para sua resposta.
Casos de teste:
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/…