Sắp xếp theo chữ số lớn nhất


23

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-7738sẽ được đặt hàng như 478, -7738, bởi vì các chữ số lớn nhất là [8,7,4][8,7,3], và không [8,7,4][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-73có thể được sắp xếp là cả hai 373, -73hoặ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, 1233120sẽ đượ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ưng 0đến trước none.
  • 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à , 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]

Câu trả lời:



7

R , 97 95 byte

function(x)x[rev(order(sapply(Map(sort,Map(unique,strsplit(paste(x),"")),T),Reduce,f=paste0)))]

Hãy thử trực tuyến!

Thử thách này dường như đã được bi quan hóa cho R. Giải thích về phiên bản gốc (bắt đầu từ 1. và làm việc lên):

f <- function(x) {
  x[                                                  # 8. Input vector in
    rev(                                              # 7. Reversed
        order(                                        # 6. Lexicographical order
              sapply(                                 # 5. Paste....
                     Map(sort,                        # 4. Sort each using...
                              Map(unique,             # 3. Deduplicate each
                                  strsplit(           # 2. Split each string into characters
                                           paste(x),  # 1. Coerce each number to string
                                           "")),      
                         T),                          # 4. ...descending sort.
                     paste,collapse="")               # 5. ...back into strings
              )
        )
    ]
}

6

Perl 6 , 36 34 33 31 byte

-1 byte nhờ Jo King
-2 byte nhờ Phil H

*.sort:{sort 1,|set -<<m:g/\d/}

Hãy thử trực tuyến!

Giải trình

       {                      }  # Map each number, e.g. -373
                       m:g/\d/  # Extract digits: (3, 7, 3)
                    -<<  # Negate each digit: (-3, -7, -3)
                set  # Convert to set to remove duplicates
               |  # Pass as list of pairs: (-3 => True, -7 => True)
             1,  # Prepend 1 for "none": (1, -3 => True, -7 => True)
        sort  # Sort (compares 1 and pair by string value): (-7 => True, -3 => True, 1)
*.sort:  # Sort lexicographically

1
Tốt đẹp! -2 byte để hoán đổi m:g/\d./cho .abs.comb: tio.run/ Kẻ
Phil H

6

Python 2 , 60 55 54 byte

-1 byte nhờ Jonas Ausevicius .

def f(l):l.sort(cmp,lambda n:sorted(set(`n`))[::-1],1)

Hãy thử trực tuyến!


Bị đánh cắp

def f(l):
  l.sort(        # Sort the list in place
    cmp = cmp,   # ... compare with the builtin function cmp
    key = k,     # ... on the function k
    reverse = 1  # ... in reverse
  )              # As the arguments are used in the right order, no names are necessary.

k = lambda n:sorted( # sort  
  set(`n`)           # ... the set of digits
  )[::-1]            # reverse the result
                     # As '-' is smaller than the digits,
                     # it will be sorted to the back and ignored for sorting

Hãy thử trực tuyến!


5
Nonecó thể được thay thế bằng cmptrong sortchức năng
Jonas Ausevicius

[:: - 1] có thể được trao đổi cho một phủ định kép, tôi nghĩ vậy.
DonQuiKong

@DonQuiKong sẽ dài hơn một chút, vì các chữ số là tất cả các chuỗi và sẽ cần phải được chuyển đổi thành ints cho điều này.
trứng

@JonasAusevicius Cảm ơn rất nhiều.
trứng


5

Brachylog , 9 byte

{ȧdṫo₁}ᵒ¹

Lưu ý: do cách đặt hàng hoạt động trong brachylog, nó không hoạt động đúng số. Điều này được cố định bằng cách chuyển số thành chuỗi ( ) với giá 1 byte.

Hãy thử trực tuyến!


2
Ý bạn là gì khi " Do cách đặt hàng hoạt động trong brachylog, nó không hoạt động như dự định. "? Tôi đã thử tất cả bốn trường hợp thử nghiệm và nó cho kết quả chính xác (trừ khi tôi vô tình nhìn qua thứ gì đó).
Kevin Cruijssen

@KevinCruijssen (để chuỗi) khắc phục sự cố. Sắp xếp các chữ số trong một số giảm dần hoạt động như sau. Đặt hàng từ nhỏ nhất đến lớn nhất sau đó đảo ngược. Vấn đề là số thứ 3120tự từ nhỏ nhất đến lớn nhất 0123tương đương với 123số đảo ngược 321và không3210
Kroppeb

2
À, vậy là mã hiện tại của bạn đang hoạt động do được thêm vào toString ( ). Như được đề cập bởi @Arnauld, tôi nghĩ rằng nhận xét của bạn có nghĩa là mã hiện tại của bạn không hoạt động. Có thể tốt hơn để đề cập đến nó như sau: " Điều này có thể là 8 byte bằng cách xóa (toString), nhưng thật không may, nó không hoạt động như dự định do cách đặt hàng hoạt động trong Brachylog. "
Kevin Cruijssen

Nhìn vào những gì tôi viết có vẻ như bộ não của tôi bị phân tâm giữa chừng. Đã sửa nó.
Kroppeb

5

Bình thường, 7 6 byte

-1 byte bởi @Sok

_o_{S`

Pyth, chỉ sử dụng ASCII có thể in, có một chút bất lợi ở đây. Tối ưu hóa mã hóa này sẽ là 6*log(95)/log(256) = 4.927byte, đánh bại 05AB1E.

Giải thích:

 o              Sort the implicit input by lambda N:
  _               reversed
   {               uniquified
    S               sorted
     '               string representation [of N]
_               then reverse the result.

Hãy thử nó ở đây .


2
Việc theo dõi Ncó thể được bỏ qua để lưu 1 byte - tất cả các hàm kiểu lambda suy ra sự hiện diện của biến lambda nguyên tắc nếu có bất kỳ đối số nào bị thiếu từ cuối. Các ví dụ bao gồm msuy luận d, fsuy luận T, usuy luận G...
Sok

4

Thạch , 8 byte

ADṢUQµÞU

Hãy thử trực tuyến!

Làm thế nào nó hoạt động

ADṢUQµÞU  Main link (monad). Input: integer list
     µÞU  Sort by (reversed):
AD        Absolute value converted to decimal digits
  ṢUQ     Sort, reverse, take unique values

2
Tôi chỉ thực hiện điều này sau đó tìm thấy bài viết của bạn. Tôi đã đi với đảo ngược bình thường , chứ không phải là tăng U. Tuy nhiên, lưu ý rằng bạn không cần Dsắp xếp kể từ khi được thực hiện với một iterable(z, make_digits=True)cuộc gọi bên trong. Vì vậy, đó là AṢQṚµÞṚcho 7.
Jonathan Allan

3

MathGolf , 7 6 byte

áÉ░▀zx

Hãy thử trực tuyến! hoặc như một bộ thử nghiệm .

Giải trình

Sau khi xem giải pháp 05AB1E của Emigna, tôi thấy rằng tôi không cần toán tử tuyệt đối (và câu trả lời trước đó của tôi thực sự không chính xác vì toán tử đó). Bây giờ sự khác biệt chính là tôi chuyển đổi thành chuỗi và nhận các ký tự duy nhất thay vì sử dụng toán tử 1 byte trong 05AB1E.

áÉ      Sort by the value generated from mapping each element using the next 3 instructions
  ░     Convert to string
   ▀    Get unique characters
    z   Sort reversed (last instruction of block)
     x  Reverse list (needed because I don't have a sort-reversed by mapping)


3

Haskell , 54 52 byte

import Data.List
f=r.sortOn(r.sort.nub.show);r=reverse

Hãy thử trực tuyến!


Xác định r=reversetiết kiệm hai byte. Chúng tôi cũng cho phép các chức năng ẩn danh, vì vậy f=không cần phải tính.
Laikoni

Tôi đã di chuyển nhập và f = vào tiêu đề TIO. Ổn chứ?
Martin Lütke

Cùng một số byte, nhưng có thể một số quan tâm : f=r$r id.nub.show;r=(reverse.).sortOn.
Laikoni

1
Việc nhập khẩu thực sự cần phải được tính.
Laikoni

2
Bạn có thể muốn xem Hướng dẫn về quy tắc chơi gôn của chúng tôi ở Haskell .
Laikoni

3

Stax , 6 7 byte

èó≥ü≤♥¥

Chạy và gỡ lỗi nó


Điều này dường như cho kết quả không chính xác. Ví dụ, trong trường hợp thử nghiệm TIO của bạn, nó xuất ra -904 8491 478 62778 6458 -7738 -73 373 123 3120 0thay vì dự định 8491 -904 62778 478 -7738 6458 373 -73 3120 123 0hoặc 8491 -904 62778 478 -7738 6458 -73 373 3120 123 0. Trường hợp thử nghiệm này cũng được sử dụng trong ví dụ và để giải thích các quy tắc, vì vậy tôi sẽ xem xét để hiểu rõ hơn về nó. Có vẻ như bạn chỉ sắp xếp theo một chữ số lớn nhất một lần, mà không có bất kỳ quy tắc nào khác?
Kevin Cruijssen

@KevinCruijssen: Vâng, lời xin lỗi của tôi. Tôi đọc sai các tuyên bố vấn đề. Tôi đã điều chỉnh chương trình để xử lý các yêu cầu đã nêu. Chương trình này đang chấp nhận các số nguyên đầu vào dưới dạng các chuỗi được trích dẫn. Điều đó thường được chấp nhận, nhưng nếu không tôi có thể cần thêm một byte khác.
đệ quy

Có vẻ tốt bây giờ, +1 từ tôi. Và vâng, nhập vào như là chuỗi hoàn toàn tốt.
Kevin Cruijssen

3

APL (Dyalog Extended) , 19 byte

{⍵[⍒∪¨(∨'¯'~⍨⍕)¨⍵]}

Hãy thử trực tuyến!

Đã sửa lỗi với chi phí +2 byte nhờ OP.


Tôi nghĩ rằng bạn đang thiếu một 'duy nhất' ở đâu đó? Nếu tôi thử trường hợp kiểm tra ví dụ trong TIO của bạn chẳng hạn, ¯7738được đặt trước 478, nhưng nó sẽ nằm sau nó: chữ số [8,7,4]đứng trước chữ số [8,7,3].
Kevin Cruijssen

Cảm ơn, @KevinCruijssen
Zacharý

3

C (gcc) , 114 111 109 byte

a;v(n){n=n<0?-n:n;for(a=0;n;n/=10)a|=1<<n%10;n=a;}c(int*a,int*b){a=v(*a)<v(*b);}f(a,n)int*a;{qsort(a,n,4,c);}

Hãy thử trực tuyến!

Giải trình:

f () sử dụng qsort () để sắp xếp mảng được cung cấp tại chỗ. Sử dụng hàm so sánh c () để so sánh các số đánh giá các số bằng v (). v () tính một số cao hơn nếu có các chữ số lớn hơn trong tham số.

[Chỉnh sửa 1] Cải thiện 3 byte. Tín dụng 2 byte cho Kevin. Cảm ơn

[Chỉnh sửa 2] 2 byte được cải thiện. Tín dụng cho người ăn uống. Cảm ơn


1
Bạn có thể chơi golf n>0để ntôi nghĩ trong vòng lặp phương pháp của bạn v.
Kevin Cruijssen

Danh sách đối số của f () int*a,ncó thể được rút ngắn thành int*a.
dạ dày

1
Đề xuất for(a=0;n=abs(n);thay vìn=n<0?-n:n;for(a=0;n;
trần mèo

2

J , 17 byte

{~[:\:~.@\:~@":@|

Hãy thử trực tuyến!

Giải trình:

                @|    - find the absolute value and
             @":      - convert to string and
         @\:~         - sort down and
       ~.             - keep only the unique symbols
    \:                - grade down the entire list of strings   
  [:                  - function composition
{~                    - use the graded-down list to index into the input   

2

JavaScript (SpiderMonkey) , 68 byte

Cảm ơn @Arnauld đã nhắc nhở tôi một lần nữa rằng SpiderMonkey sử dụng sắp xếp ổn định, vì vậy -4 byte để xóa ||-1.

A=>A.sort((x,y,F=n=>[...new Set(""+n)].sort().reverse())=>F(x)<F(y))

Hãy thử trực tuyến!

JavaScript (Node.js) , 72 byte

A=>A.sort((x,y,F=n=>[...new Set(""+n)].sort().reverse())=>F(x)<F(y)||-1)

Hãy thử trực tuyến!


Hoặc 68 byte với SpiderMonkey.
Arnauld

1
@Arnauld oh sắp xếp ổn định trở lại; P
Shieru Asakoto

Trên thực tế, tôi nghĩ rằng V8 đang sử dụng ít nhất 2 thuật toán sắp xếp khác nhau. Có vẻ như nó ổn định nếu kích thước của mảng nhỏ hơn hoặc bằng10.
Arnauld

1
@Arnauld V8 sử dụng sắp xếp nhanh trước Chrome 70. Thuật toán sắp xếp nhanh thực hiện sắp xếp chèn khi kích thước mảng đủ nhỏ. Và Chrome mới nhất đã thay đổi thành loại ổn định để phù hợp với hành vi của các trình duyệt khác (IE / Firefox / Safari).
tsh

2

Java (JDK) , 98 byte

l->l.sort((a,b)->{int r=0,i=58;for(;r==0&i-->48;)r=(b.indexOf(i)>>9)-(a.indexOf(i)>>9);return r;})

Hãy thử trực tuyến!

Giải trình

l->                           // Consumer<List<String>>
 l.sort(                      //  Use the incorporated sort method which uses a...
  (a,b)->{                    //   Comparator of Strings
   int r=0,                   //    define r as the result, initiated to 0
       i=58;                  //           i as the codepoint to test for.
   for(;r==0&i-->48;)         //    for each digit codepoint from '9' to '0',
                              //     and while no difference was found.
    r=                        //     set r as the difference between
     (b.indexOf(i)>>9)-       //      was the digit found in b? then 0 else -1 using the bit-shift operator
     (a.indexOf(i)>>9);       //      and was the digit found in a? then 0 else -1.
   return r;                  //    return the comparison result.
  }
 )

Chú thích:

Tôi cần một cách để lập bản đồ số cho một trong hai 0/1hoặc 0/-1.

indexOfcó tài sản tốt đẹp mà nó luôn trả lại -1cho các ký tự không được tìm thấy. -1thay đổi bên phải bởi bất kỳ số nào luôn luôn -1. Bất kỳ số dương nào được dịch chuyển sang phải bởi một số đủ lớn sẽ luôn tạo ra0 .

Vì thế chúng ta ở đây:

input        input.indexOf('9')      input.indexOf('9')>>9
"999"        0                       0
"111119"     5                       0
"123456"     -1                      -1

1
À, ừ, ý tôi là thế. ; p Chơi golf đẹp >>9thay vì >>32do phạm vi số lượng có hạn.
Kevin Cruijssen




1

APL (NARS), 366 ký tự, 732 byte

_gb←⍬

∇a _s w;t
t←_gb[a]⋄_gb[a]←_gb[w]⋄_gb[w]←t
∇

∇(_f _q)w;l;r;ls;i
(l r)←w⋄→0×⍳l≥r⋄l _s⌊2÷⍨l+r⋄ls←i←l⋄→3
  →3×⍳∼0<_gb[i]_f _gb[l]⋄ls+←1⋄ls _s i
  →2×⍳r≥i+←1
l _s ls⋄_f _q l(ls-1)⋄_f _q(ls+1)r
∇

∇r←(a qsort)w
r←¯1⋄→0×⍳1≠⍴⍴w⋄_gb←w⋄a _q 1(↑⍴w)⋄r←_gb
∇

f←{∪t[⍒t←⍎¨⍕∣⍵]}

∇r←a c b;x;y;i;m
x←f a⋄y←f b⋄r←i←0⋄m←(↑⍴x)⌊(↑⍴y)⋄→3
→0×⍳x[i]<y[i]⋄→3×⍳∼x[i]>y[i]⋄r←1⋄→0
→2×⍳m≥i+←1⋄r←(↑⍴x)>(↑⍴y)
∇

Đối với toán tử qsort, đó là một traslation trong APL của algo trang 139 K & R Linguaggio C. Tôi nghĩ trong đó có sử dụng dữ liệu là C với con trỏ ... Kiểm tra

 c qsort 123, 478, ¯904, 62778, 0, ¯73, 8491, 3120, 6458, ¯7738, 373 
8491 ¯904 62778 478 ¯7738 6458 ¯73 373 3120 123 0 
 c qsort 11, ¯312, 902, 23, 321, 2132, 34202, ¯34, ¯382 
902 ¯382 34202 ¯34 321 ¯312 2132 23 11 
 c qsort 9, 44, 2212, 4, 6, 6, 1, 2, 192, 21, 29384, 0 
29384 192 9 6 6 4 44 2212 21 2 1 0 
 c qsort 44, ¯88, 9, 233, ¯3, 14, 101, 77, 555, 67 
9 ¯88 67 77 555 14 44 233 ¯3 101 

1

Powershell, 44 byte

$args|sort{$_-split'(.)'-ne'-'|sort -u -d}-d

Kịch bản thử nghiệm:

$f = {

$args|sort{$_-split'(.)'-ne'-'|sort -u -d}-d

}

@(
    ,( (123, 478, -904, 62778, 0, -73, 8491, 3120, 6458, -7738, 373),
       (8491, -904, 62778, 478, -7738, 6458, 373, -73, 3120, 123, 0),
       (8491, -904, 62778, 478, -7738, 6458, -73, 373, 3120, 123, 0) )

    ,( (11, -312, 902, 23, 321, 2132, 34202, -34, -382),
       (902, -382, 34202, -34, -312, 321, 2132, 23, 11),
       (902, -382, 34202, -34, 2132, -312, 321, 23, 11) )

    ,( (9, 44, 2212, 4, 6, 6, 1, 2, 192, 21, 29384, 0),
       (29384, 192, 9, 6, 6, 4, 44, 2212, 21, 2, 1, 0),
       (29384, 192, 9, 6, 6, 44, 4, 2212, 21, 2, 1, 0),
       (29384, 192, 9, 6, 6, 44, 4, 21, 2212, 2, 1, 0) )

    ,( (44, -88, 9, 233, -3, 14, 101, 77, 555, 67),
       ,(9, -88, 67, 77, 555, 14, 44, 233, -3, 101) )
) | % {
    $a, $expected = $_
    $result = &$f @a
    $true-in($expected|%{"$result"-eq"$_"})
    "$result"
}

Đầu ra:

True
8491 -904 62778 478 -7738 6458 -73 373 3120 123 0
True
902 -382 34202 -34 2132 -312 321 23 11
True
29384 192 9 6 6 44 4 21 2212 2 1 0
True
9 -88 67 77 555 14 44 233 -3 101

1

PHP, 87 86 84 byte

while(--$argc)$a[_.strrev(count_chars($n=$argv[++$i],3))]=$n;krsort($a);print_r($a);

Chạy với -nrhoặc thử trực tuyến .

Thay thế ++$ibằng $argc(+1 byte) để chặn Thông báo (và hiển thị -nobosolete).

phá vỡ

while(--$argc)  # loop through command line arguments
    $a[                             # key=
        _.                              # 3. prepend non-numeric char for non-numeric sort
        strrev(                         # 2. reverse =^= sort descending
        count_chars($n=$argv[++$i],3)   # 1. get characters used in argument
        )
    ]=$n;                           # value=argument
krsort($a);     # sort by key descending
print_r($a);    # print

- là "nhỏ hơn" các chữ số, vì vậy nó không ảnh hưởng đến việc sắp xếp.


1

Lisp thông thường, 88 byte

(sort(read)'string> :key(lambda(x)(sort(remove-duplicates(format()"~d"(abs x)))'char>)))

Hãy thử trực tuyến!

Tốt cũ verbose chung Lisp!

Giải trình:

(sort                   ; sort
 (read)                 ; what to sort: a list of numbers, read on input stream 
 'string>               ; comparison predicate (remember: this is a typed language!)
 :key (lambda (x)       ; how to get an element to sort; get a number
       (sort (remove-duplicates  ; then sort the unique digits (characters) 
               (format() "~d" (abs x))) ; from its string representation
             'char>)))  ; with the appropriate comparison operator for characters

1

C # (Trình biên dịch tương tác Visual C #) , 75 74 byte

-1 chỉ cảm ơn @ ASCII

x=>x.OrderByDescending(y=>String.Concat((y+"").Distinct().OrderBy(z=>-z)))

Hãy thử trực tuyến!

Trong C #, chuỗi được coi là "liệt kê" các ký tự. Tôi sử dụng điều này để lợi thế của tôi bằng cách đầu tiên chuyển đổi mỗi số thành một chuỗi. LINQ sau đó được tận dụng để có được các ký tự (chữ số) duy nhất được sắp xếp theo thứ tự ngược lại. Tôi chuyển đổi từng mảng ký tự được sắp xếp lại thành một chuỗi và sử dụng nó làm khóa sắp xếp để sắp xếp toàn bộ danh sách.


Có vẻ như bạn sẽ có thể thoát khỏi việc không thêm -, có vẻ như thứ tự của những thứ đó không thực sự quan trọng?
ASCII chỉ

Nếu không có -, trường hợp thử nghiệm # 2 trả về ... 321 2132 ...có vẻ không chính xác?
dana

không, đọc ví dụ kỹ hơn
ASCII - chỉ

OK - tôi nghĩ rằng quyền của bạn. Cảm ơn vì tiền hỗ trợ!
dana
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.