挑战:
给定一个整数列表,请按其最大的一位数字降序排列。具有相同大数字的数字的顺序将按第二大数字排序,依此类推。
我们忽略数字中重复的数字。而且,如果一个数字中的所有数字都相同,则列表中这些数字的顺序可以是您想要的任何方式。
例:
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]
。 - 结果可能只是其中一个输出就足够了,但是您可以根据需要输出所有可能的输出,其中子列表可以任意排列(尽管我怀疑它会以任何语言保存字节)。
一般规则:
- 这是代码高尔夫球,因此最短答案以字节为单位。
不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 - 标准规则适用于具有默认I / O规则的答案,因此允许您使用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/...