নির্ভরযোগ্যভাবে ভাঙা বাছাই করুন


23

কমপক্ষে 3 স্বতন্ত্র এন্ট্রি সমন্বিত ধনাত্মক পূর্ণসংখ্যার একটি তালিকা দেওয়া, সেই তালিকাটির একটি ক্রমপুট আউটপুট করুন যা ক্রমবর্ধমান বা অবতরণ ক্রমে সাজানো নয়।

উদাহরণ

1,2,3 -> 2,1,3 or 3,1,2 or 1,3,2 or 2,3,1
1,2,3,3 -> 2,1,3,3 or 3,1,2,3 or 1,3,2,3 etc..

শিরোনামের জন্য ধন্যবাদ @ আরনাউল্ড এবং @ ননওআইনি এখানে!


ইনপুট কি সর্বদা বাছাই করা হবে?
xnor

প্রদত্ত এন্ট্রিগুলির একটি সেট দেওয়াতে অবশ্যই বাছাইটি "নির্ভরযোগ্য" হওয়া উচিত, এটি সর্বদা আউটপুট হিসাবে একই অনুক্রমের উত্পাদন করে? বা আউটপুটটি সাজানো হয়নি এমনটিই কেবল "নির্ভরযোগ্য" হওয়া উচিত?
ওয়াইল্ডকার্ড

এটি অবশ্যই চশমা সন্তুষ্ট করা উচিত।
flawr

একটি নেস্টেড অ্যারে আউটপুট হিসাবে অনুমতি দেওয়া হবে? যেমন [2,[1,3]],।
শেগি

না, এটি একটি একক অ্যারে / তালিকা হওয়া উচিত।
flawr

উত্তর:


14

জাভাস্ক্রিপ্ট (ES6), 39 34 বাইট

a=>[a.sort((x,y)=>x-y).pop(),...a]

অ্যারেটিকে আরোহণের ক্রমে সাজান, শেষ উপাদানটি পপ করুন এবং এটিকে একটি নতুন অ্যারের প্রথম উপাদান হিসাবে ব্যবহার করুন। তারপর অবশিষ্ট নতুন অ্যারের মধ্যে মূল অ্যারের উপাদানের destructure (জেএস এ উভয় sortএবং popমূল বিন্যাস পরিবর্তন)।


এটা পরীক্ষা করো

o.innerText=(f=

a=>[a.sort((x,y)=>x-y).pop(),...a]

)(i.value=[1,2,3]);oninput=_=>o.innerText=f(i.value.split`,`)
<input id=i><pre id=o>


তুমি শুধু করছ না কেন a.sort()?
জিওকাভেল

1
@ জোকাভেল: কারণ জেএসের sortপদ্ধতিটি অভিধানভিত্তিকভাবে বাছাই করে ।
শেগি

3
সুতরাং কারণ এটি ইতিমধ্যে অবিশ্বাস্যভাবে ভেঙে গেছে? = ডি
jpmc26


7

Ṣṙ-এছাড়াও কাজ করে (ঠিক এইরকম অনুভব করার মতো অনুভূত হয়েছিল; আপনি সম্ভবত জানতেন: পি)
হাইপারনিউটারিনো

@ হাইপার নিউট্রিনো ইয়েপ যা একইভাবে কাজ করে, একই বাইকোয়ান্ট: পি
এরিক আউটগলফার

কোন এনকোডিংয়ে Ṣṙ1কেবল তিনটি বাইট রয়েছে? ইউটিএফ -8 এ, এটি 7 বাইট।
heinrich5991

2
@ হেনরিচ ৫৯৯১ জেলি একটি কাস্টম কোডপেজ ব্যবহার করে ।
কোলে

আমি মনে করি যে জেলি ব্যবহার করে তাদের প্রত্যেকের অবশ্যই একটি ব্রাউজার এক্সটেনশন থাকতে হবে যা "জেলি একটি কাস্টম কোডেজ ব্যবহার করে" মন্তব্যটি স্বয়ংক্রিয়ভাবে পোস্ট করতে একটি বোতাম যুক্ত করে।
12



5

পাইথন 3 , 31 বাইট

lambda a:sorted(a)[1:]+[min(a)]

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

-1 বাইট xnor ধন্যবাদ


... আমি এই প্রাথমিক যুক্তিটি কীভাবে দেখিনি। >।>
সম্পূর্ণমানবিক

@totallyhuman আমার সমস্ত উত্তর 3 টি একই জিনিস করেন। তবে হা: পি এছাড়াও আমি আপনার PR এর জন্য আইওএস ->
মাকোস

হ্যাঁ, আমি আমার শাখাটি লক্ষ্য করে মুছে ফেলেছি। : পি
সম্পূর্ণরূপে

ফেলে minশেষে একটি বাইট পরিমাণ সঞ্চয় হয়।
xnor

5

এপিএল, 9 বাইট

{1⌽⍵[⍋⍵]}

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

কিভাবে?

⍵[⍋⍵] - তালিকাটি বাছাই করুন

1⌽ - 1 দ্বারা ঘোরান


GNU এবং ngn এও কাজ করে!
জাকারি

@ জাকারি অনুমান করুন আমি কেবল ডায়ালগটি সরিয়ে দেব ...
উরিল

5

টিআই-বেসিক (টিআই -৪৪ প্লাস সিই), 31 বাইট

Prompt A
SortA(LA
max(LA→B
dim(LA)-1→dim(LA
augment({B},LA

বিন্যাসে ইনপুট জন্য অনুরোধ {1,2,3,4}

টিআই-বেসিক একটি টোকেনাইজড ভাষা , এখানে ব্যবহৃত সমস্ত টোকেনগুলি এক-বাইট by

ব্যাখ্যা:

Prompt A         # 3 bytes, store user input in LA
SortA(LA         # 4 bytes, sort LA ascending
max(LA→B         # 6 bytes, save the last value in the sorted list to B
dim(LA)-1→dim(LA # 11 bytes, remove the last value from LA
augment({B},LA   # 7 bytes, prepend B to LA and implicitly print the result

5

পাইথ , 7 5 4 বাইট

.P1S

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

-1 বাইট FryAmTheEggman ধন্যবাদ


আপনি অনুমতি ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেন: pyth.herokuapp.com/…
FryAmTheEggman

@ ফ্রাইআম দ্য এজিগম্যান ধন্যবাদ, আমি যখন কম্পিউটারে আসি তখন এটি আপডেট করব।
NoOneIsHere




3

জাভা 8, 68 37 বাইট

l->{l.sort(null);l.add(l.remove(0));}

-31 বাইটস @ নেভাকে ধন্যবাদ (ভুলে গেছেন জাভা 8 এর একটি List#sort(Comparator)পদ্ধতি ছিল ..)

ইনপুটটি ArrayListপরিবর্তিত করে, কোনও নতুন ফিরিয়ে দেওয়ার পরিবর্তে।

ব্যাখ্যা:

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

l->{                   // Method with ArrayList parameter and no return-type
  l.sort(null);        //  Sort the input-list (no need for a Comparator, thus null)
  l.add(l.remove(0));  //  Remove the first element, and add it last
}                      // End of method

আপনি l->{l.sort(null);java.util.Collections.rotate(l,1);}16 বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন ।
নেভায়ে

2
বিকল্পভাবে আপনি l->{l.sort(null);l.add(l.remove(0));}31 বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন (কোনও স্থির আকারের তালিকার ব্যবহার প্রয়োজন)।
নেভায়ে

@ নেভে সুন্দর একটি, তবে ... ডকুমেন্টেশনের ক্ষেত্রে বন্ধনীগুলি সামান্য বন্ধ রয়েছে: বাস্তবতা হ'ল alচ্ছিক ক্রিয়াকলাপগুলি addএবং removeঅবশ্যই প্রয়োগ করা উচিত; স্থির আকারের তালিকা সম্পর্কে কিছুই বলা হয় নি ... কেভিন ক্রুইজসেন, আগের মন্তব্যে আরও ভাল বিকল্প রয়েছে বলে আমি +1 এর আগে সম্পাদনার জন্য অপেক্ষা করব।
অলিভিয়ার

3

হাস্কেল, 36 37 বাইট

import Data.List
f(a:b)=b++[a];f.sort

ইনপুট তালিকার সাজানো সংস্করণের মাথায় মিলের জন্য দর্শন প্যাটার্নগুলি ব্যবহার করুন, তারপরে তালিকার প্রথম আইটেমটি অবশিষ্ট তালিকার লেজটিতে যুক্ত করুন।

প্যাটার্নগুলি দেখুন এটি মূল্যবান নয়। তালিকাটি বাছাই করুন, মাথাটি সরিয়ে নিন, শেষ পর্যন্ত এটি যুক্ত করুন। এই ক্ষেত্রে, এটি সক্রিয় যে নিখুঁত সমাধান সংক্ষিপ্তভাবে টাইপ করা সেরা।


1
পিপিসিজিতে আপনাকে স্বাগতম! দেখার ধরণগুলি ব্যবহার করার দুর্দান্ত ধারণা, আমি তাদের সম্পর্কে আগে জানতাম না। দুর্ভাগ্যক্রমে, তারা স্ট্যান্ডার্ড হাস্কেলগুলিতে সক্ষম নয়, সুতরাং সাইটের বিধি অনুসারে আপনার কমান্ড লাইন পতাকার জন্য বাইট অন্তর্ভুক্ত করতে হবে -XViewPatterns। যারা স্ট্যান্ডার্ড পন্থা গণনা f(a:b)=b++[a];f.sortসংক্ষিপ্ত।
লাইকনি

আমি একরকম পতাকার প্রয়োজনীয়তার কথা ভাবছিলাম না। আমার ধারণা আমি এগুলি এত বেশি ব্যবহার করেছি যে আমি ভুলে গিয়েছিলাম যে আমি এটি আমার ক্যাবাল ফাইলগুলিতে চালু করেছি এবং এটি ভাষার কোনও অংশ নয়।
16:37




2

আর, 33 32 29 বাইট

স্টিডিন থেকে ইনপুট নেয়। তালিকাটি বাছাই করে তারপরে প্রথম উপাদানটিকে শেষের দিকে নিয়ে যায়, এটি নিশ্চিত করে যে এটি আর সাজানো নেই। জিউসেপের কারণে তিনটি বাইট সংরক্ষণ করা হয়েছে।

c(sort(x<-scan())[-1],min(x))

আর একটি বাস্তবায়ন, একই বাইট গণনা:

c((x<-sort(scan()))[-1],x[1])

c(sort(x<-scan())[-1],min(x))মূলত আপনার মত একই ধারণা ব্যবহার করে 29 বাইট।
জিউসেপে

1

ওহম , 2 বাইট

S╜

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

আমি মনে করি এটি একটি নতুন উত্তর পোস্ট করার জন্য সম্পূর্ণরূপে মানবদেহের পোস্ট থেকে যথেষ্ট ভিন্ন; আমি আশা করি আপনি আপত্তি করবেন না: পি সম্পাদনা : আমাকে নিনজদা করুন


আপনি নিনজা চাইতেন। ;)
সম্পূর্ণমানবিক



1

রেটিনা , 10 বাইট

O#`
O^#-2`

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

O#`     Sort the list
O^#-2`  Reverse sort the list other than the last element

এটি প্রথমে ২ য় সর্বোচ্চ এলিমেন্টের সাথে তালিকাকে ছেড়ে যায় এবং সর্বশেষে সর্বোচ্চ উপাদান যা কখনই সঠিকভাবে সাজানো হয় না


1

রুবি, 18 বাইট

মোবাইলে জমা দেওয়া হয়েছে। সমস্যার জন্য আমাকে হত্যা করবেন না দয়া করে।

->a{a.sort.rotate}

1

পাইথ, 5 বাইট

.>SQ1

ব্যাখ্যা

SQ - সাজানো ইনপুট তালিকা

.>SQ1 - ইনপুট তালিকা ঘূর্ণায়মান 1 দ্বারা






1

পিএইচপি, 44 বাইট

সংক্ষিপ্ত অ্যারে সিনট্যাক্সের জন্য পিএইচপি 5.4 বা তার পরে প্রয়োজন।

sort($a=&$argv);print_r([array_pop($a)]+$a);

বাছাইয়ের আর্গুমেন্ট, 0-th আর্গুমেন্টকে সরানো শেষ আর্গুমেন্ট, মুদ্রণের সাথে প্রতিস্থাপন করুন। এটি
দিয়ে চালান -nrবা অনলাইনে চেষ্টা করুন


0 তম যুক্তি হ'ল স্ক্রিপ্ট ফাইলের নাম, "-"যদি আপনি পিএইচপি সাথে কল করেন -r"-"স্ট্রিং হিসাবে অন্যান্য যুক্তিগুলির সাথে তুলনা করা হয় এবং যেহেতু ord("-")==45এটি কোনও সংখ্যার চেয়ে ছোট। সংখ্যার নিজেদের, যদিও পংক্তি, নম্বর হিসাবে তুলনা করা হয়: "12" > "2"

php -nr '<code>' 3 4 2 5 1এবং sort($a=&$argv)সীসা $a=["-","1","2","3","4","5"]
[array_pop($a)]+$aহয় [0=>"5"]+[0=>"-",1=>"1",2=>"2",3=>"3",4=>"4"],
যা ফলাফল [0=>"5",1=>"1",2=>"2",3=>"3",4=>"4"]


আপনি কী ব্যাখ্যা করতে পারেন [অ্যারে_পপ ($ এ)] + $ কেন $ এ এর ​​0 তম সূচকটি ওভাররাইট করে না? উদাহরণস্বরূপ: $ a = [1,2,3,4,5], অ্যারে_পপ ($ এ) = 5, $ এ = [1,2,3,4]। আপনি যদি [5] + [1,2,3,4] করেন তবে উভয় অ্যারেতে 0 তম সূচক রয়েছে বলে এটি [5,2,3,4] হওয়া উচিত না? আমি বিভ্রান্ত কারণ পিএইচপি ম্যানুয়ালটি বলে "" অপারেটর ডান হাতের অ্যারেটি বাম-হাতের অ্যারেতে সংযুক্ত করে দেয়; উভয় অ্যারেতে থাকা কীগুলির জন্য, বাম-হাতের অ্যারের থেকে উপাদানগুলি ব্যবহার করা হবে এবং ম্যাচিং হবে ডান হাতের অ্যারে থেকে উপাদানগুলি উপেক্ষা করা হবে। "
jstnthms

@jstnthms +অপারেটর সংযোজন করে না, এটি মার্জ হয়ে যায় ( সূচীগুলি পুনরায় অর্ডার না করেই; তবে এটি এখানে গুরুত্বপূর্ণ নয়)। গুরুত্বপূর্ণ পয়েন্টটি হ'ল স্ক্রিপ্টের ফাইলের নামটি $aনির্দেশ করে $argvএবং $argv[0]এতে যুক্তিগুলি সূচী 1 এ শুরু হয় index আমি বিবরণটি প্রসারিত করেছি। প্রশ্নের জন্য ধন্যবাদ।
তিতাস

1

জুলিয়া, 23 বাইট

f(x)=sort(x)[[2:end;1]]

এর চেয়ে সামান্য খাটো, তবে সমান f(x)=circshift(sort(x),1)। আমি আশা করি selectযে আমি আরও বেশি, কমপ্যাক্ট ভিত্তিক মেকমেডথোড করতে পারতাম তবে তা পারি না

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