Sfida:
Dato un elenco di numeri interi, ordina in ordine decrescente per le singole cifre più grandi. L'ordine per i numeri con la stessa cifra più grande viene quindi ordinato in base alla seconda cifra più grande, ecc.
Ignoriamo le cifre duplicate nei numeri. E se tutte le cifre di un numero sono uguali, l'ordine di quei numeri nell'elenco può essere come desideri.
Esempio:
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]
Perché? Ecco le cifre rilevanti su cui sono stati ordinati i numeri:
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]]
Regole della sfida:
- Ignoriamo le cifre duplicate, quindi
478
e-7738
verranno ordinate come478, -7738
, perché le cifre più grandi sono[8,7,4]
e[8,7,3]
, e non[8,7,4]
e[8,7,7,3]
. - Se più numeri hanno le stesse cifre, l'ordine di questi può essere in entrambi i modi. Quindi
373
e-73
può essere ordinato come entrambi373, -73
o-73, 373
(le cifre sono[7,3]
per entrambi questi numeri). - Se un numero non contiene più cifre da controllare, verrà inserito sul retro dei numeri pertinenti. Quindi
123
e3120
saranno ordinati come3120, 123
, perché le cifre più grandi[3,2,1]
sono uguali, ma0
viene primanone
. - Puoi presumere che tutti i numeri nell'input siano compresi nell'intervallo
[-999999,999999]
. - Di conseguenza, è sufficiente solo una delle uscite possibili, ma è possibile generare tutte le uscite possibili in cui le liste secondarie possono essere in qualsiasi permutazione, se lo si desidera (anche se dubito che salverebbe byte in qualsiasi lingua).
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard con regole I / O predefinite , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice (ad es. TIO ).
- Inoltre, si consiglia vivamente di aggiungere una spiegazione per la risposta.
Casi test:
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./
per.abs.comb
: tio.run/…