Urutkan berdasarkan Digit Terbesar

23

Tantangan:

Diberikan daftar bilangan bulat, urutkan menurun berdasarkan satu digit terbesarnya. Urutan angka dengan digit terbesar yang sama kemudian diurutkan berdasarkan digit terbesar kedua, dll.
Kami mengabaikan digit yang digandakan dalam angka. Dan jika semua digit dalam angka sama, urutan angka-angka itu dalam daftar bisa dengan cara apa pun yang Anda inginkan.

Contoh:

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]

Mengapa? Berikut adalah angka-angka yang relevan dengan nomor yang diurutkan:

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]]

Aturan tantangan:

  • Kami mengabaikan digit yang digandakan, jadi 478dan -7738akan dipesan sebagai 478, -7738, karena digit terbesar adalah [8,7,4]dan [8,7,3], dan bukan [8,7,4]dan [8,7,7,3].
  • Jika beberapa angka memiliki angka yang sama, urutannya dapat berupa apa saja. Jadi 373dan -73dapat disortir karena keduanya 373, -73atau -73, 373(digit [7,3]untuk kedua angka ini).
  • Jika suatu angka tidak mengandung lagi angka untuk diperiksa, angka itu akan ditempatkan di belakang angka yang relevan. Jadi 123dan 3120akan disortir sebagai 3120, 123, karena digit terbesarnya [3,2,1]sama, tetapi 0ada sebelumnya none.
  • Anda dapat menganggap semua angka dalam input berada dalam kisaran [-999999,999999].
  • Hanya satu dari kemungkinan keluaran yang cukup sebagai hasilnya, tetapi Anda diizinkan untuk mengeluarkan semua kemungkinan keluaran di mana sublist dapat dalam permutasi apa pun jika Anda mau (walaupun saya ragu itu akan menghemat byte dalam bahasa apa pun).

Aturan umum:

  • Ini adalah , jadi jawaban tersingkat dalam byte menang.
    Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'.
  • Aturan standar berlaku untuk jawaban Anda dengan aturan I / O default , sehingga Anda diizinkan untuk menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
  • Celah default tidak diperbolehkan.
  • Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda (yaitu TIO ).
  • Juga, menambahkan penjelasan untuk jawaban Anda sangat dianjurkan.

Kasus uji:

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]
Kevin Cruijssen
sumber

Jawaban:

6

05AB1E , 5 byte

ΣêR}R

Cobalah online! atau sebagai Test suite

Penjelasan

Σ  }    # sort input by
 ê      # its sorted unique characters
  R     # reversed (to sort descending)
    R   # reverse the result (to sort descending)
Emigna
sumber
7

R , 97 95 byte

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

Cobalah online!

Tantangan ini tampaknya telah menjadi pesimis untuk R. Penjelasan dari versi asli (mulai 1. dan bekerja):

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
              )
        )
    ]
}
ngm
sumber
6

Perl 6 , 36 34 33 31 byte

-1 byte terima kasih kepada Jo King
-2 byte terima kasih kepada Phil H

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

Cobalah online!

Penjelasan

       {                      }  # 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
nwellnhof
sumber
1
Bagus! -2 byte untuk swapping m:g/\d./untuk .abs.comb: tio.run/…
Phil H
6

Python 2 , 60 55 54 byte

-1 byte terima kasih kepada Jonas Ausevicius .

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

Cobalah online!


Tidak disatukan

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

Cobalah online!

ovs
sumber
5
Nonedapat diganti dengan cmpdi sortfungsi
Jonas Ausevicius
[:: - 1] bisa ditukar dengan negasi ganda, saya pikir.
DonQuiKong
@ DonQuiKong itu akan sedikit lebih lama, karena semua digit adalah string, dan perlu dikonversi ke int untuk ini.
Ovs
@JonasAusevicius Terima kasih banyak.
Ovs
5

Brachylog , 9 byte

{ȧdṫo₁}ᵒ¹

Catatan: karena cara pemesanan bekerja di brachylog, tidak berfungsi pada nomor dengan benar. Ini diperbaiki dengan melemparkan nomor ke string ( ) dengan biaya 1 byte.

Cobalah online!

Kroppeb
sumber
2
Apa yang Anda maksud dengan " Karena cara pemesanan bekerja di brachylog, itu tidak berfungsi sebagaimana dimaksud. "? Saya sudah mencoba keempat kasus uji, dan ini memberikan hasil yang benar (kecuali saya sengaja melihat masa lalu sesuatu).
Kevin Cruijssen
@KevinCruijssen (ke string) memperbaiki masalah ini. Memesan digit dalam jumlah menurun berfungsi sebagai berikut. Pesan dari terkecil ke terbesar kemudian mundur. Masalahnya adalah bahwa jumlah yang 3120dipesan dari terkecil ke terbesar 0123adalah sama dengan 123yang dibalik 321dan tidak3210
Kroppeb
2
Ah ok, jadi kode Anda saat ini berfungsi karena toString ditambahkan ( ). Seperti disebutkan oleh @Arnauld, saya pikir komentar Anda berarti kode Anda saat ini tidak berfungsi. Mungkin lebih baik untuk menyebutkannya seperti: " Ini bisa jadi 8 byte dengan menghapus (toString), tetapi sayangnya itu tidak berfungsi sebagaimana dimaksud karena cara pemesanan bekerja di Brachylog. "
Kevin Cruijssen
Melihat apa yang saya tulis, tampaknya otak saya terganggu oleh perhatian. Memperbaikinya.
Kroppeb
5

Pyth, 7 6 byte

-1 byte oleh @Sok

_o_{S`

Pyth, yang hanya menggunakan ASCII yang dapat dicetak, ada sedikit kerugian di sini. Disandikan secara optimal ini akan menjadi 6*log(95)/log(256) = 4.927byte, mengalahkan 05AB1E.

Dijelaskan:

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

Coba di sini .

lirtosiast
sumber
2
Trailing Ndapat ditinggalkan untuk menghemat 1 byte - semua fungsi tipe lambda menyimpulkan keberadaan variabel prinsip lambda jika ada argumen yang hilang dari akhir. Contohnya termasuk mmenyimpulkan d, fmenyimpulkan T, umenyimpulkan G...
Sok
4

Jelly , 8 byte

ADṢUQµÞU

Cobalah online!

Bagaimana itu bekerja

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
Bubbler
sumber
2
Saya baru saja mengimplementasikan ini kemudian menemukan posting Anda. Aku pergi dengan membalikkan normal ,, daripada terbalik U,. Perhatikan, bagaimanapun, bahwa Anda tidak perlu Dkarena sort,, diimplementasikan dengan iterable(z, make_digits=True)panggilan di dalamnya. Jadi itu AṢQṚµÞṚuntuk 7.
Jonathan Allan
3

MathGolf , 7 6 byte

áÉ░▀zx

Cobalah online! atau sebagai test suite .

Penjelasan

Setelah melihat solusi 05AB1E Emigna, saya menemukan bahwa saya tidak memerlukan operator absolut (dan jawaban saya sebelumnya sebenarnya salah karena operator itu). Sekarang perbedaan utama adalah bahwa saya mengonversi ke string dan mendapatkan karakter unik daripada menggunakan operator 1-byte di 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)
maks
sumber
3

Japt , 12 byte

ñ_a ì â ñnÃw

Semua uji kasus

Penjelasan:

ñ_        Ãw    :Sort Descending by:
  a             : Get the absolute value
    ì           : Get the digits
      â         : Remove duplicates
        ñn      : Sort the digits in descending order
Kamil Drakari
sumber
3

Haskell , 54 52 byte

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

Cobalah online!

Martin Lütke
sumber
Menentukan r=reversemenyimpan dua byte. Kami juga mengizinkan fungsi anonim, sehingga f=tidak perlu dihitung.
Laikoni
Saya memindahkan impor dan f = ke header TIO. Apakah itu oke?
Martin Lütke
Count byte yang sama, tapi mungkin dari beberapa kepentingan: f=r$r id.nub.show;r=(reverse.).sortOn.
Laikoni
1
Impor sebenarnya perlu dihitung.
Laikoni
2
Anda mungkin ingin melihat Panduan kami untuk aturan golf di Haskell .
Laikoni
3

Stax , 6 7 byte

èó≥ü≤♥¥

Jalankan dan debug itu

rekursif
sumber
Ini sepertinya memberikan hasil yang salah. Sebagai contoh, dalam kasus uji TIO Anda itu output -904 8491 478 62778 6458 -7738 -73 373 123 3120 0bukan yang dimaksudkan 8491 -904 62778 478 -7738 6458 373 -73 3120 123 0atau 8491 -904 62778 478 -7738 6458 -73 373 3120 123 0. Test case ini juga digunakan dalam contoh, dan untuk menjelaskan aturan, jadi saya akan melihatnya untuk memahaminya dengan lebih baik. Sepertinya Anda hanya mengurutkan berdasarkan satu digit terbesar satu kali, tanpa ada aturan lain?
Kevin Cruijssen
@KevinCruijssen: Ya, saya minta maaf. Saya salah membaca pernyataan masalah. Saya telah menyesuaikan program untuk menangani persyaratan yang disebutkan. Program ini menerima bilangan bulat input seperti string yang dikutip. Itu biasanya dapat diterima, tetapi jika tidak saya mungkin perlu menambahkan byte lain.
rekursif
Terlihat bagus sekarang, +1 dari saya. Dan ya, memasukkan sebagai string benar-benar baik-baik saja.
Kevin Cruijssen
3

APL (Dyalog Extended) , 19 byte

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

Cobalah online!

Diperbaiki dengan biaya +2 ​​byte berkat OP.

Zacharý
sumber
Saya pikir Anda kehilangan 'keunikan' di suatu tempat? Jika saya mencoba contoh test case di TIO Anda misalnya, ¯7738ditempatkan sebelumnya 478, tetapi harus setelah itu: digit [8,7,4]datang sebelum digit [8,7,3].
Kevin Cruijssen
Terima kasih, @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);}

Cobalah online!

Penjelasan:

f () menggunakan qsort () untuk mengurutkan array yang disediakan di tempat. Menggunakan fungsi perbandingan c () untuk membandingkan angka yang mengevaluasi angka menggunakan v (). v () menghitung angka yang lebih tinggi jika angka yang lebih besar ada di parameter.

[Sunting 1] Ditingkatkan sebesar 3 byte. 2 byte kredit untuk Kevin. Terima kasih

[Sunting 2] 2 byte lebih ditingkatkan. Kredit untuk gastropner. Terima kasih

GPS
sumber
1
Anda dapat bermain golf n>0untuk nsaya pikir dalam loop metode Anda v.
Kevin Cruijssen
Daftar argumen f () int*a,ndapat disingkat menjadi int*a.
gastropner
1
Sarankan for(a=0;n=abs(n);alih-alihn=n<0?-n:n;for(a=0;n;
ceilingcat
2

J , 17 byte

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

Cobalah online!

Penjelasan:

                @|    - 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   
Galen Ivanov
sumber
2

JavaScript (SpiderMonkey) , 68 byte

Terima kasih untuk @Arnauld untuk mengingatkan saya lagi bahwa SpiderMonkey menggunakan sort yang stabil, jadi -4 byte untuk menghapus ||-1.

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

Cobalah online!

JavaScript (Node.js) , 72 byte

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

Cobalah online!

Shieru Asakoto
sumber
Atau 68 byte dengan SpiderMonkey.
Arnauld
1
@Arnauld oh semacam stabil lagi; P
Shieru Asakoto
10
1
@Arnauld V8 menggunakan pengurutan cepat sebelum Chrome 70. Algoritma pengurutan cepat melakukan pengurutan saat ukuran array cukup kecil. Dan Chrome terbaru telah berubah menjadi sortir stabil untuk mencocokkan perilaku browser lain (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;})

Cobalah online!

Penjelasan

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.
  }
 )

catatan:

Saya membutuhkan cara untuk memetakan angka ke salah satu 0/1atau 0/-1.

indexOfmemiliki properti bagus yang secara konsisten dikembalikan -1untuk karakter yang tidak ditemukan. -1selalu bergeser ke kanan dengan nomor berapa pun -1. Setiap angka positif yang bergeser ke kanan dengan angka yang cukup besar akan selalu menghasilkan 0.

Jadi inilah kita:

input        input.indexOf('9')      input.indexOf('9')>>9
"999"        0                       0
"111119"     5                       0
"123456"     -1                      -1
Olivier Grégoire
sumber
1
Ah, ya, itulah yang saya maksud. ; p Golf yang bagus untuk digunakan >>9alih-alih >>32karena terbatasnya jumlah angka.
Kevin Cruijssen
1

Ruby , 55 byte

->a{a.sort_by{|x|x.abs.digits.sort.reverse|[]}.reverse}

Cobalah online!

Kirill L.
sumber
1

Julia 1.0 , 50 byte

x->sort(x,by=y->sort(unique([digits(-abs(y));1])))

Cobalah online!

Kirill L.
sumber
1

APL (NARS), 366 karakter, 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)
∇

Untuk operator qsort, ini adalah salah satu traslasi dalam APL dari algo halaman 139 K&R Linguaggio C. Saya pikir di dalamnya ada menggunakan data sebagai C dengan pointer ... Test

 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 
RosLuP
sumber
1

Powershell, 44 byte

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

Skrip uji:

$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"
}

Keluaran:

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
mazzy
sumber
1

PHP, 87 86 84 byte

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

Jalankan dengan -nratau coba online .

Ganti ++$idengan $argc(+1 byte) untuk menekan Pemberitahuan (dan membuat -nusang).

kerusakan

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

- "lebih kecil" dari digit, jadi tidak memengaruhi penyortiran.

Titus
sumber
1

Common Lisp, 88 byte

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

Cobalah online!

Good Old verbose Common Lisp!

Penjelasan:

(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
Renzo
sumber
1

C # (Visual C # Interactive Compiler) , 75 74 byte

-1 terima kasih @ ASCII saja

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

Cobalah online!

Dalam C #, string dianggap "enumerables" karakter. Saya menggunakan ini untuk keuntungan saya dengan terlebih dahulu mengkonversi setiap angka menjadi string. LINQ kemudian dimanfaatkan untuk mendapatkan karakter (digit) unik diurutkan dalam urutan terbalik. Saya mengkonversi setiap array karakter yang diurutkan kembali menjadi string dan menggunakannya sebagai kunci pengurutan untuk memesan seluruh daftar.

dana
sumber
Sepertinya Anda bisa lolos dengan tidak menambahkan -, sepertinya urutan yang tidak terlalu penting?
ASCII
Tanpa -, test case # 2 kembali ... 321 2132 ...yang tampaknya salah?
dana
nah, baca contohnya lebih hati
ASCII
OK - saya pikir Anda benar. Terima kasih atas tipnya!
dana