Wyzwanie:
Biorąc pod uwagę listę liczb całkowitych, posortuj malejąco według ich największych pojedynczych cyfr. Kolejność liczb o tej samej największej cyfrze jest następnie sortowana według drugiej największej cyfry itp.
Ignorujemy zduplikowane cyfry liczb. A jeśli wszystkie cyfry w liczbie są takie same, kolejność liczb na liście może być dowolna.
Przykład:
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]
Czemu? Oto odpowiednie cyfry, według których posortowano numery:
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]]
Zasady konkursu:
- Ignorujemy zduplikowane cyfry, więc
478
i-7738
będą zamawiane jako478, -7738
, ponieważ największe cyfry to[8,7,4]
i[8,7,3]
, a nie[8,7,4]
i[8,7,7,3]
. - Jeśli wiele cyfr ma te same cyfry, ich kolejność może być dowolna. Więc
373
i-73
mogą być sortowane jako obie373, -73
lub-73, 373
(cyfry dotyczą[7,3]
obu tych liczb). - Jeśli liczba nie zawiera więcej cyfr do sprawdzenia, zostanie umieszczona z tyłu odpowiednich liczb. Więc
123
i3120
zostaną posortowane jako3120, 123
, ponieważ największe cyfry[3,2,1]
są takie same, ale0
występują wcześniejnone
. - Możesz założyć, że wszystkie liczby na wejściu są w zakresie
[-999999,999999]
. - Wystarczy jedno z możliwych wyników, ale możesz wypisać wszystkie możliwe dane wyjściowe, w których listy podrzędne mogą znajdować się w dowolnej permutacji, jeśli chcesz (chociaż wątpię, że zaoszczędziłoby to bajtów w dowolnym języku).
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły z domyślnymi regułami We / Wy , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwracanych, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem kodu (tj. TIO ).
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
Przypadki testowe:
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./
na.abs.comb
: tio.run/…