বৃহত্তম অঙ্ক (গুলি) অনুসারে বাছাই করুন


23

চ্যালেঞ্জ:

পূর্ণসংখ্যার একটি তালিকা দেওয়া হয়েছে, তাদের একক বৃহত্তম অঙ্ক (গুলি) দ্বারা সাজানো সাজানো। একই বৃহত
অঙ্কের সংখ্যার ক্রমটি দ্বিতীয় বৃহত্তম অঙ্ক ইত্যাদির দ্বারা বাছাই করা হয় etc. আমরা সংখ্যায় সদৃশ অঙ্কগুলি উপেক্ষা করি। এবং যদি কোনও সংখ্যার সমস্ত অঙ্ক একই থাকে তবে তালিকার সেই সংখ্যার ক্রমটি আপনি যেভাবে চান তা হতে পারে।

উদাহরণ:

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, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে দয়া করে আপনার কোডের (যেমন টিআইও ) একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন ।
  • এছাড়াও, আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করা অত্যন্ত প্রস্তাবিত।

পরীক্ষার কেস:

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]

উত্তর:



7

আর , 97 95 বাইট

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

এটি অনলাইন চেষ্টা করুন!

এই চ্যালেঞ্জটি মূল সংস্করণটির আর.র ব্যাখ্যা (1. শুরু করুন এবং কাজ শুরু করুন) এর জন্য অনুমিত হয়েছে বলে মনে হচ্ছে:

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

পার্ল 6 , 36 34 33 31 বাইট

-১ বাইট ধন্যবাদ জো কিং
-২ বাইট ধন্যবাদ ফিল এইচকে ধন্যবাদ

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

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

       {                      }  # 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
নিস! এর m:g/\d./জন্য অদলবদলের জন্য -2 বাইট .abs.comb: tio.run/…
ফিল এইচ

6

পাইথন 2 , 60 55 54 বাইট

-1 বাইট জোনাস অউসেভিসিয়াসকে ধন্যবাদ ।

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

এটি অনলাইন চেষ্টা করুন!


Ungolfed

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

এটি অনলাইন চেষ্টা করুন!


5
Noneসঙ্গে প্রতিস্থাপিত হতে পারে cmpমধ্যে sortফাংশন
জোনাস Ausevicius

আমার মনে হয় [:: - 1] দ্বিগুণ প্রত্যাখ্যানের জন্য বিনিময় হতে পারে।
ডোনকুইকং

@ ডনকুইকিং যেগুলি কিছুটা দীর্ঘতর হবে যদিও অঙ্কগুলি সমস্ত স্ট্রিং, এবং এটির জন্য ইনসে রূপান্তরিত হওয়া প্রয়োজন।
ovs

@ জোনাস অউসেভিচিয়াস অনেক ধন্যবাদ
ovs


5

ব্র্যাচল্যাগ , 9 বাইট

{ȧdṫo₁}ᵒ¹

দ্রষ্টব্য: ব্র্যাচলাইজে অর্ডার কীভাবে কাজ করে তার কারণে এটি সংখ্যায় সঠিকভাবে কাজ করে না। এটি 1 বাইটের দামে স্ট্রিং ( ) এ নম্বর castালাইয়ের মাধ্যমে ঠিক করা হয়েছে।

এটি অনলাইন চেষ্টা করুন!


2
" ব্র্যাচল্যাগে অর্ডার কীভাবে কাজ করে তার দ্বারা এটি কী বোঝায় ?" আমি চারটি পরীক্ষার কেস চেষ্টা করেছি এবং এর সঠিক ফলাফল দিচ্ছি (যদি না আমি দুর্ঘটনাক্রমে কোনও কিছুকে না দেখি)।
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন দ্য (টু স্ট্রিং) বিষয়টি সমাধান করে। নীচে নেমে আসা একটি সংখ্যায় অঙ্কের অঙ্কগুলি নিম্নরূপে কাজ করে। সবচেয়ে ছোট থেকে শুরু করে বিপরীত দিকে অর্ডার করুন। সমস্যাটি হ'ল 3120ছোট থেকে বৃহত্তম থেকে অর্ডার করা নম্বরটি যা বিপরীত হয় 0123তার সমান এবং না1233213210
ক্রপবেব

2
আহ ঠিক আছে, সুতরাং আপনার বর্তমান কোড যুক্ত স্ট্রিং ( ) এর কারণে কাজ করছে । @ আরনাউল্ড দ্বারা উল্লিখিত হিসাবে, আমি ভেবেছিলাম আপনার মন্তব্যটির অর্থ আপনার বর্তমান কোডটি কাজ করে না। এটির মতো উল্লেখ করা আরও ভাল হতে পারে: " এটি (টোস্ট্রিং) সরিয়ে 8 বাইট হতে পারত , তবে দুর্ভাগ্যক্রমে
ব্র্যাচ্ল্যাজে

আমি যা লিখেছি তা দেখে মনে হচ্ছে আমার মস্তিষ্ক বিভ্রান্ত হয়ে গেছে ঠিক কর.
ক্রপ্পেব

5

পাইথ, 7 6 বাইট

-১ বাইট @ সোক

_o_{S`

পাইথ, যা কেবল মুদ্রণযোগ্য এএসসিআইআই ব্যবহার করে, এখানে কিছুটা অসুবিধে হয়। সর্বোত্তমভাবে এনকোড করা এটি 6*log(95)/log(256) = 4.927বাইট হবে, 05AB1E কে।

ব্যাখ্যা:

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

এখানে চেষ্টা করুন


2
ট্রেলিংটি N1 বাইট সংরক্ষণ করার জন্য ছেড়ে দেওয়া যেতে পারে - সমস্ত ল্যাম্বদা-টাইপ ফাংশন নীতির লাম্বদা ভেরিয়েবলের উপস্থিতি অনুমান করে যদি কোনও যুক্তি শেষ থেকে অনুপস্থিত থাকে। উদাহরণগুলির মধ্যে mইনফেরিং d, fইনফেরিং T, uইনফেরিং G... অন্তর্ভুক্ত রয়েছে
সোক

4

জেলি , 8 বাইট

ADṢUQµÞU

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

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
আমি সবেমাত্র এটি প্রয়োগ করেছি তখন আপনার পোস্টটি পাওয়া গেল। আমি স্বাভাবিক বিপরীতে চলেছি, পরিবর্তে আপেন্ডস চেয়ে U। উল্লেখ্য, আপনি প্রয়োজন হবে না Dসাজানোর সাল থেকে , একটি সঙ্গে বাস্তবায়িত হয় iterable(z, make_digits=True)কল ভিতরে। সুতরাং এটি AṢQṚµÞṚ7 এর জন্য ছিল
জোনাথন অ্যালান

3

ম্যাথগল্ফ , 7 6 বাইট

áÉ░▀zx

এটি অনলাইন চেষ্টা করুন! বা পরীক্ষার স্যুট হিসাবে ।

ব্যাখ্যা

Emigna এর 05AB1E সমাধানটি দেখার পরে, আমি দেখতে পেলাম যে আমাকে পরম অপারেটরের দরকার নেই (এবং আমার পূর্ববর্তী উত্তরটি সেই অপারেটরের কারণে আসলে ভুল ছিল)। এখন মূল পার্থক্য হ'ল আমি স্ট্রিংয়ে রূপান্তর করি এবং 05AB1E-তে 1-বাইট অপারেটর ব্যবহার না করে অনন্য অক্ষর পাই।

áÉ      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

হাস্কেল , 54 52 বাইট

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

এটি অনলাইন চেষ্টা করুন!


সংজ্ঞা r=reverseদুটি বাইট সংরক্ষণ করে। আমরা বেনামে ফাংশনগুলিও অনুমতি দিই, সুতরাং এটি f=গণনা করার দরকার নেই।
লাইকনি

আমি আমদানি এবং এফ = টিআইও হেডারে স্থানান্তরিত করেছি। এটা কি ঠিক আছে?
মার্টিন লটকে

একই বাইট গণনা, কিন্তু হয়তো কিছু সুদ: f=r$r id.nub.show;r=(reverse.).sortOn
লাইকনি

1
আমদানিটি আসলে গণনা করা দরকার।
লাইকনি


3

এটি ভুল ফলাফল বলে মনে হচ্ছে। উদাহরণস্বরূপ, আপনার টিআইওর পরীক্ষার ক্ষেত্রে -904 8491 478 62778 6458 -7738 -73 373 123 3120 0এটি উদ্দেশ্য 8491 -904 62778 478 -7738 6458 373 -73 3120 123 0বা পরিবর্তে আউটপুট দেয় 8491 -904 62778 478 -7738 6458 -73 373 3120 123 0। এই পরীক্ষার কেস উদাহরণেও ব্যবহৃত হয়, এবং নিয়মগুলি ব্যাখ্যা করতে, তাই আমি এটি আরও ভাল করে বুঝতে সেদিকে একবার নজর দেব। দেখে মনে হচ্ছে আপনি কেবলমাত্র একক বৃহত্তম অঙ্ক দ্বারা বাছাই করছেন, অন্য কোনও নিয়ম ছাড়াই?
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন: হ্যাঁ, আমার ক্ষমা চাইছি। আমি সমস্যার বিবৃতিটি ভুলভাবে পড়েছি। আমি বর্ণিত প্রয়োজনীয়তাগুলি পরিচালনা করতে প্রোগ্রামটি সামঞ্জস্য করেছি। এই প্রোগ্রামটি উদ্ধৃত স্ট্রিং হিসাবে ইনপুট পূর্ণসংখ্যা গ্রহণ করছে। এটি সাধারণত গ্রহণযোগ্য, তবে যদি না হয় তবে আমার অন্য একটি বাইট যোগ করার প্রয়োজন হতে পারে।
পুনরাবৃত্তি

আমার থেকে +1 এখন দুর্দান্ত দেখাচ্ছে। এবং হ্যাঁ, স্ট্রিং হিসাবে ইনপুট করা সম্পূর্ণ জরিমানা।
কেভিন ক্রুইজসেন

3

এপিএল (ডায়ালগ প্রসারিত) , 19 বাইট

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

এটি অনলাইন চেষ্টা করুন!

ওপিকে ধন্যবাদ দিয়ে +2 বাইট ব্যয়ে স্থির করা হয়েছে।


আমি মনে করি আপনি কোথাও একটি 'স্বতন্ত্র' মিস করছেন? যদি আমি উদাহরণস্বরূপ আপনার টিআইওতে পরীক্ষার কেসটি চেষ্টা করি তবে এটি ¯7738আগে স্থাপন করা হয়েছে 478তবে এটির পরে হওয়া উচিত: অঙ্কগুলি [8,7,4]আগে অঙ্কগুলি আসে [8,7,3]
কেভিন ক্রুইজসেন

ধন্যবাদ, @
কেভিন

3

সি (জিসিসি) , 114 111 109 বাইট

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

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

চ () প্রদত্ত অ্যারের স্থানে সাজানোর জন্য qsort () ব্যবহার করে। ভি () ব্যবহার করে সংখ্যার মূল্যায়ন করে এমন সংখ্যার সাথে তুলনা করতে সি () তুলনা ফাংশন ব্যবহার করুন। v () পরামিতিতে বড় অঙ্ক উপস্থিত থাকলে একটি উচ্চতর সংখ্যা গণনা করে।

[সম্পাদনা 1] 3 বাইট দ্বারা উন্নত কেভিনের কাছে 2 বাইট ক্রেডিট। ধন্যবাদ

[সম্পাদনা 2] আরও 2 বাইট উন্নত হয়েছে। গ্যাস্ট্রোপনারকে ক্রেডিট। ধন্যবাদ


1
আপনি নিজের পদ্ধতির লুপটিতে আমার মনে হয় আপনি গল্ফ n>0করতে পারেন । nv
কেভিন ক্রুইজসেন

চ () এর আর্গুমেন্ট তালিকাটি int*a,nছোট করা যেতে পারে int*a
গ্যাস্ট্রোপনার

1
সুপারিশ for(a=0;n=abs(n);পরিবর্তেn=n<0?-n:n;for(a=0;n;
ceilingcat


2

জাভাস্ক্রিপ্ট (স্পাইডারমনকি) , 68 বাইট

আমাকে আবার স্মরণ করিয়ে দেওয়ার জন্য @ আর্নল্ডকে ধন্যবাদ জানাই যে স্পাইডারমনকি স্থিতিশীল বাছাই, তাই -4 অপসারণের জন্য বাইট ব্যবহার করে ||-1

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

এটি অনলাইন চেষ্টা করুন!

জাভাস্ক্রিপ্ট (নোড.জেএস) , 72 বাইট

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

এটি অনলাইন চেষ্টা করুন!


অথবা স্পাইডারমনকি সহ 68 বাইট
আর্নল্ড

1
@ আরনাউল্ড ওহ স্থিতিশীল সাজান আবার; পি
শিয়েরু আসাকোটো

10

1
@ আরনল্ড ভি 8 ক্রোম 70০ এর আগে দ্রুত বাছাই ব্যবহার করুন ar অ্যারের আকার যথেষ্ট ছোট হলে দ্রুত সাজানোর অ্যালগরিদম একটি সন্নিবেশ সাজান perform অন্যান্য ব্রাউজারগুলির (আইই / ফায়ারফক্স / সাফারি) আচরণের সাথে সামঞ্জস্য করার জন্য সর্বশেষতম ক্রোম স্থিতিশীল ধরণে পরিবর্তিত হয়েছিল।
tsh

2

জাভা (জেডিকে) , 98 বাইট

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

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

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

বিঃদ্রঃ:

আমার দুটিতে মানচিত্রের মানচিত্রের একটি উপায় প্রয়োজন 0/1 বা0/-1

indexOfএমন দুর্দান্ত সম্পত্তি রয়েছে যা এটি ধারাবাহিকভাবে -1অক্ষরগুলির জন্য পাওয়া যায়নি। -1যে কোনও সংখ্যা দ্বারা ডান স্থানান্তরিত সর্বদা-1 । বড় পরিমাণে ডান স্থানান্তরিত কোনও ধনাত্মক সংখ্যা সর্বদা উত্পাদন করবে 0

তাই আমরা এখানে:

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

1
আহ, হ্যাঁ, আমি এটাই বোঝাতে চাইছি। ; পি সংখ্যার সীমাবদ্ধতার কারণে ব্যবহারের >>9পরিবর্তে দুর্দান্ত গল্ফ >>32
কেভিন ক্রুইজসেন




1

এপিএল (এনএআরএস), 366 অক্ষর, 732 বাইট

_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)
∇

কিউসোর্ট অপারেটরের জন্য, এটি আলগো পৃষ্ঠার ১৩৯ কে এবং আর লিঙ্গুয়াজিও সি এর এপিএলে একটি ট্র্যাসলেশন lation আমি মনে করি এটিতে পয়েন্টার সহ সি হিসাবে ডেটা ব্যবহার করা হচ্ছে ... পরীক্ষা

 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

পাওয়ারশেল, 44 বাইট

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

পরীক্ষার স্ক্রিপ্ট:

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

আউটপুট:

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

পিএইচপি, 87 86 84 বাইট

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

এটি দিয়ে চালান -nrবা অনলাইনে চেষ্টা করুন

নোটিশ (এবং অপ্রচলিত রেন্ডার ) দমন করতে (+1 বাইট) ++$iদিয়ে প্রতিস্থাপন $argcকরুন -n

ভাঙ্গন

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

- অঙ্কগুলির তুলনায় "ছোট", সুতরাং এটি বাছাইয়ের কোনও প্রভাব ফেলবে না।


1

কমন লিস্প, 88 বাইট

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

এটি অনলাইন চেষ্টা করুন!

ভাল পুরাতন ভার্বোজ কমন লিস্প!

ব্যাখ্যা:

(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

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 75 74 বাইট

-1 ধন্যবাদ @ এএসসিআইআই-কেবল

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

এটি অনলাইন চেষ্টা করুন!

সি # তে, স্ট্রিংগুলি অক্ষরের "পরিগণিত" হিসাবে বিবেচিত হয়। প্রতিটি সংখ্যাকে প্রথমে স্ট্রিংয়ে রূপান্তর করে আমি এটি আমার সুবিধার জন্য ব্যবহার করি। লিনকিউ এর পরে বিপরীত ক্রমে সাজানো অনন্য অক্ষর (অঙ্কগুলি) পেতে সহায়তা করা হয়। আমি প্রতিটি সাজানো অক্ষর অ্যারেটিকে আবার স্ট্রিংয়ে রূপান্তর করি এবং পুরো তালিকাটি অর্ডার করার জন্য সেটিকে বাছাই করা কী হিসাবে ব্যবহার করি।


দেখে মনে হচ্ছে আপনি যোগ না করে পালাতে সক্ষম হবেন -, দেখে মনে হচ্ছে এটির কোনও ক্রম নেই?
ASCII- কেবল

-পরীক্ষার কেস ছাড়া # 2 রিটার্ন ... 321 2132 ...যা ভুল বলে মনে হচ্ছে?
দানা

নাহ, উদাহরণটি আরও মনোযোগ সহকারে পড়ুন
ASCII-

ঠিক আছে - আমি আপনার অধিকার মনে করি। ভকভগক!
দানা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.