Вызов:
По заданному списку целых чисел сортируйте по убыванию по их наибольшим цифрам. Порядок номеров с одинаковой самой большой цифрой затем сортируется по второй по величине цифре и т. Д.
Мы игнорируем повторяющиеся цифры в числах. И если все цифры в номере одинаковы, порядок этих номеров в списке может быть любым, каким вы захотите.
Пример:
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]
Зачем? Вот соответствующие цифры, по которым были отсортированы числа:
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]]
Правила соревнований:
- Мы игнорируем дублирующиеся цифры, поэтому
478
и-7738
будем упорядочивать как478, -7738
, потому что самые большие цифры есть[8,7,4]
и[8,7,3]
, а не[8,7,4]
и[8,7,7,3]
. - Если несколько номеров имеют одинаковые цифры, их порядок может быть любым. Таким образом,
373
и-73
могут быть отсортированы как оба373, -73
или-73, 373
(цифры[7,3]
для обоих этих чисел). - Если номер не содержит больше цифр для проверки, он будет помещен в конце соответствующих номеров. Так
123
и3120
будет отсортировано3120, 123
, так как самые большие цифры[3,2,1]
такие же, но0
идут раньшеnone
. - Можно предположить, что все числа на входе находятся в диапазоне
[-999999,999999]
. - В качестве результата достаточно одного из возможных выходных данных, но вы можете вывести все возможные выходные данные, где подсписки могут быть в любой перестановке, если хотите (хотя я сомневаюсь, что это сохранит байты на любом языке).
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - Применяются стандартные правила к вашему ответу с правилами ввода / вывода по умолчанию , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода (т.е. TIO ).
- Кроме того, добавление объяснения для вашего ответа настоятельно рекомендуется.
Тестовые случаи:
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./
на.abs.comb
: tio.run/…