Thử thách:
Đưa ra một danh sách các số nguyên, sắp xếp giảm dần theo (các) chữ số lớn nhất của chúng. Thứ tự cho các số có cùng chữ số lớn nhất sau đó được sắp xếp theo chữ số lớn thứ hai, v.v.
Chúng tôi bỏ qua các chữ số trùng lặp trong các số. Và nếu tất cả các chữ số trong một số đều giống nhau, thứ tự của các số đó trong danh sách có thể theo bất kỳ cách nào bạn muốn.
Thí dụ:
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]
Tại sao? Dưới đây là các chữ số có liên quan, các số được sắp xếp trên:
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]]
Quy tắc thử thách:
- Chúng tôi bỏ qua chữ số trùng lặp, do đó
478
và-7738
sẽ được đặt hàng như478, -7738
, bởi vì các chữ số lớn nhất là[8,7,4]
và[8,7,3]
, và không[8,7,4]
và[8,7,7,3]
. - Nếu nhiều số có cùng một chữ số, thứ tự của các số đó có thể là một trong hai cách. Vì vậy,
373
và-73
có thể được sắp xếp là cả hai373, -73
hoặc-73, 373
(chữ số[7,3]
cho cả hai số này). - Nếu một số không chứa nhiều chữ số để kiểm tra, nó sẽ được đặt ở mặt sau của các số có liên quan. Vì vậy,
123
và3120
sẽ được sắp xếp như3120, 123
, bởi vì các chữ số lớn nhất[3,2,1]
là như nhau, nhưng0
đến trướcnone
. - Bạn có thể giả sử tất cả các số trong đầu vào nằm trong phạm vi
[-999999,999999]
. - Chỉ cần một trong những đầu ra có thể là đủ, nhưng bạn được phép xuất tất cả các đầu ra có thể trong đó danh sách con có thể ở bất kỳ hoán vị nào nếu bạn muốn (mặc dù tôi nghi ngờ nó sẽ lưu byte bằng bất kỳ ngôn ngữ nào).
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Quy tắc chuẩn áp dụng cho câu trả lời của bạn với quy tắc I / O mặc định , vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn (ví dụ TIO ).
- Ngoài ra, thêm một lời giải thích cho câu trả lời của bạn rất được khuyến khích.
Các trường hợp thử nghiệm:
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./
cho.abs.comb
: tio.run/ Kẻ