আমার পরিবর্তন গণনা করুন


21

আপনার কাজটি হ'ল "কোয়ার্টার", "ডাইম", "নিকেল", এবং "পেনি" স্ট্রিংগুলি সহ একটি নির্দিষ্ট বিন্যাসে কয়েক বার বার বাছাই করা এবং সেগুলি যাতে এই ক্রমে থাকে তা সাজান: quarter dime nickel penny(অন্য কথায়, সর্বনিম্ন থেকে আর্থিক মান)


বিধি

  1. আপনার প্রোগ্রামটি অবশ্যই মার্কিন মুদ্রার নাম সম্বলিত ইনপুট হিসাবে একটি অ্যারে নেবে এবং এগুলি সর্বনিম্ন থেকে কমপক্ষে আর্থিক মান অনুসারে বাছাই করবে।
    • যারা মার্কিন যুক্তরাষ্ট্রে নয় বা পরিবর্তন ব্যবহার করেন না তাদের জন্য, মার্কিন কয়েনের মান, সবচেয়ে বড় থেকে কমপক্ষে, হ'ল:
      • কোয়ার্টার: 25 সেন্ট
      • ডাইম: 10 সেন্ট
      • নিকেল: 5 সেন্ট
      • পেনি: 1 সেন্ট
  2. উপরের দেখানো আর্থিক মানগুলির দ্বারা আউটপুট অর্ডার না হওয়া পর্যন্ত আপনি যেকোন উপায়ে এই অ্যারেটিকে বাছাই করতে পারেন।
  3. ইনপুট যেকোন উপায়ে নেওয়া যেতে পারে, তা কমান্ড-লাইন আর্গুমেন্ট বা এসটিডিআইএন হোক।
  4. একটি ইনপুট অ্যারে সমস্ত ছোট ছোট স্ট্রিং হবে, এরকম কিছু:
    • quarter dime nickel nickel quarter dime penny penny
  5. ইনপুট এবং আউটপুট এর আসল ফর্ম্যাট আপনার উপর নির্ভর করে।

পরীক্ষার মামলা

"penny nickel dime quarter" 
-> "quarter dime nickel penny"

"nickel penny penny quarter quarter quarter dime dime dime dime"
-> "quarter quarter quarter dime dime dime dime nickel penny penny"

"quarter dime nickel nickel quarter dime penny penny"
-> "quarter quarter dime dime nickel nickel penny penny"

এটি , সুতরাং স্ট্যান্ডার্ড বিধি এবং লফোলগুলি প্রয়োগ হয়।



1
সমস্ত পরীক্ষার ক্ষেত্রে আউটপুট অন্তর্ভুক্ত করা উচিত। মোবাইলে দ্বিতীয় এবং তৃতীয় কেস দুটি লাইনে দেখানো হয়েছে, সুতরাং দেখে মনে হচ্ছে দ্বিতীয় লাইনটি আউটপুট
লুইস মেন্ডো

4
আমি কানাডিয়ান, আমি কি ধরে নিতে পারি ইনপুটটির কোনও পেনি নেই? ;)
আন্ডারগ্রাউন্ডোমোনাইল

1
নিবন্ধন করুন
ckjbgames

1
পাগল এবং অর্ধ ডলার কি হয়েছে?
অ্যাডাম

উত্তর:


26

জাপট , 5 3 বাইট

ñg9

এটি অনলাইন পরীক্ষা!

ব্যাখ্যা

আমিও গত কয়েক সপ্তাহে আমার ভাষায় একটি বাছাইয়ের ফাংশন যুক্ত করেছি :-) ñএকটি অ্যারে এবং একটি ফাংশন নেয় এবং অ্যারেটি সাজিয়ে তোলে যেন প্রতিটি আইটেম সেই ফাংশনটির মাধ্যমে ম্যাপ করা হয়েছে।

gএকটি স্ট্রিং উপর ফাংশন একটি সংখ্যা লাগে nএবং আয় n, স্ট্রিং তম গৃহস্থালির কাজ মোড়ানো যদি nনেতিবাচক বা স্ট্রিংয়ের শেষ প্রান্ত হল অতীত। স্ট্রিংগুলি এভাবে নিম্নরূপ করা যায়:

quarterquarter...
dimedimedimedi...
nickelnickelni...
pennypennypenn...

প্রতিটি স্ট্রিংয়ের 9 ম চর (0-ইনডেক্সড) গা bold়ভাবে হাইলাইট করা হয়েছে। এগুলি সঠিক ক্রমে রয়েছে, সুতরাং আমাদের যা করতে হবে তা হ'ল ñg9। (যদিও এখন আমি এটির দিকে ফিরে তাকাব, ñg5পাশাপাশি কাজ করবে ...)


এটি 5 এর সাথেও কাজ করা উচিত বলে আমি মনে করি।
ফ্লিপট্যাক

@ ফ্লিপট্যাক হ্যাঁ, আমি কেবল এটি নিজেই লক্ষ্য করেছি। এটি কোনও পার্থক্য রাখে না ;-)
ইটিএইচ প্রোডাকশনগুলি

এই. না পারেন. থাকা. পরাজিত করেন।
ckjbgames

1
@ckjbgames ডেনিস কোনও উত্তর পোস্ট করেন নি ;-)
ETH প্রোডাকশন

1
পছন্দ করুন শুধু তাকে এই প্রশ্নটি দেখান।
ckjbgames

8

ভি , 7 বাইট

ú/¨qu©¿

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

এটি প্রায় এক সপ্তাহ পূর্বে আমি ভিতে যোগ করা স্পিফি নতুন সাজানোর কমান্ডটি ব্যবহার করে ( ú)। মিষ্টি সময়!

এটি যেভাবে কাজ করে তা হ'ল ডিফল্ট বাছাই (ASCII মান) দ্বারা প্রতিটি লাইনকে বাছাই করে তবে কোনও নির্দিষ্ট রেজেক্সের প্রথম ম্যাচ উপেক্ষা করে। এই ক্ষেত্রে, রেজেক্সটি হ'ল (qu)?, যদিও এতে ব্যাকস্ল্যাশ ব্যবহার এড়াতে কিছু স্থূল অ-এএসসিআইআই স্টাফ রয়েছে। যদি আপনি "কোয়ার্টারের" প্রথম দুটি অক্ষর উপেক্ষা করেন তবে এটি 'ক' দিয়ে শুরু হবে এবং তারপরে সমস্ত কয়েন ইতিমধ্যে বর্ণমালার ক্রমে রয়েছে।

অ-প্রতিযোগিতামূলক সংস্করণ, 4 বাইট

ú!/.

এই বৈশিষ্ট্যটি ইতিমধ্যে বাস্তবায়িত হয়েছিল, তবে আমি এখনও এটিকে ব্যাপকভাবে পরীক্ষা করেছিলাম না সুতরাং এটির একটি বাগ ছিল যা আমি কেবলমাত্র এই চ্যালেঞ্জের কারণে উপলব্ধি করেছিলাম। টিআইও লিঙ্ক নেই কারণ টিআইও কিছুটা পিছনে রয়েছে।

এটি প্রতিটি লাইনের বিপরীতে বাছাই করে কিন্তু প্রতিটি লাইনের প্রথম অক্ষরকে উপেক্ষা করে কাজ করে।


8

পাইথন, 36 বাইট

lambda a:a.sort(key=lambda x:x[-5:])

নামহীন ফাংশন যা প্রদত্ত কী ফাংশন অনুসারে তালিকায় স্থান অনুসারে বাছাই করে।

প্রতিটি মুদ্রা নামের টুকরা তারপর হয়, arter, dime, ickel, এবং penny- বর্ণানুক্রমিক (বা আরো গুরুত্বপূর্ণভাবে, পূরণবাচক) অনুক্রমে যা হয়।


ওফ উফ - যদি আমি elভুল উপায়ে কাছাকাছি না পাই তবে আমি মিস করি c: পি
জোনাথন অ্যালান


6

পাইথন 3 , 42 41 38 বাইট

একটি নামবিহীন ল্যাম্বদা ফাংশন যা জায়গায় স্ট্রিংয়ের তালিকা হিসাবে ইনপুট নেয়।

(জোনাথন অ্যালান আউটগল্ফড)

lambda x:x.sort(key=lambda s:(s*2)[5])

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

অন্যান্য সমাধানগুলি আমি এর সাথে জড়িত:

lambda x:x.sort(key=lambda s:s*(s<'q'))
lambda x:x.sort(key=lambda s:(s+'pi')[5])
lambda x:x.sort(key=lambda s:ord(s[3])%16)

5

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

$args|sort{($_*3)[9]}

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

ব্যাখ্যা

নির্লজ্জভাবে ইটিএইচ প্রডাকশনগুলির উত্তরে (মূলত) অ্যালগরিদমটি চুরি করেছে । আমি প্রতিটি স্ট্রিং 3 দিয়ে গুণ করি, তারপরে ফলাফলের স্ট্রিংয়ের 9 ম চরিত্রের উপর ভিত্তি করে সাজান।


$_পাওয়ারশেলে কী আছে?
ckjbgames

@ckjbgames একটি পাইপলাইনে স্ক্রিপ্টব্লকের মধ্যে এটি বর্তমান আইটেমটিকে বোঝায়। সুতরাং মত 1,2,3,4 | ForEach-Object { $_*2 }প্রতিটি প্রতিটি সংখ্যা 2 বার আউটপুট হবে; স্ক্রিপ্ট ব্লক প্রতি ইনপুট আইটেম একবার চালানো হয়।
ব্রিটিশবাদী

এটা বোধগম্য.
ckjbgames

5

জেলি , 4 বাইট

6ịµÞ

এটি অনলাইন চেষ্টা করুন! (পাদচরণ,ÇYএকটি সুন্দর প্রিন্ট আউট জন্য লাইন ফিড সঙ্গে ফলাফলের সাথে যোগ দেয়।)

কিভাবে?

6ịµÞ - Main link: list of strings
  µ  - monadic chain separation
   Þ - sort the list of strings by the monadic function:
6ị   - the sixth index - Jelly indexing is modular and 1-based

জেলির একটি তালিকার নবম সূচক হ'ল এনথ আইটেমটি বামদিকে শুরু হয়, 1 থেকে গণনা করা হয় এবং যখন প্রয়োজন হয় তখন ফিরে ফিরে আসে। (0 তম ডানদিকে, এর 1-বাম এক এবং আরও অনেক কিছু)

সুতরাং ষষ্ঠ চরিত্র ['d','i','m','e'] হল 'i'ছয় থেকে দুই মডিউল থেকে চার সর্বসম হয়।

ক্রমযুক্ত চারটি মুদ্রার ষষ্ঠ অক্ষরটি হ'ল কোয়ার্ট eআর, ডি iমি, নিক l,pক্রমযুক্ত হ'ল নিক এন্নি। এগুলি বর্ণানুক্রমিক (বা আরও গুরুত্বপূর্ণ, অর্ডিনাল) ক্রমে রয়েছে।


আরেকটি উপায় একই জিনিস অর্জন করা দিয়ে আবর্তিত স্ট্রিং দ্বারা বাছাই হবে ṙ5µÞ, যেখানে ডান দিকে ঘোরান স্ট্রিং উপার্জন erquart, imed, lnicke, এবং penny


5

পাইথন , 32 বাইট

lambda s:s.sort(key="npr".strip)

এটি অনলাইন চেষ্টা করুন! তালিকায় স্থান অনুসারে বাছাই করে।

ধারণাটি হ'ল একটি ছাড়াই একটি বাছাই কী ফাংশন ব্যবহার করা lambda। একটি ভাল প্রার্থী ছিলেন x.strip, যা স্ট্রিং নেয় xএবং ইনপুটটির সমস্ত বাম এবং বাম প্রান্তগুলি সরিয়ে দেয়। উদাহরণস্বরূপ "abcdef".strip("faces") == "bcd",।

পদ্ধতিটি "npr".stripগ্রহণ করে:

quarter ->  np
dime    ->  npr
nickel  ->  pr
penny   ->  r

যা অভিধানিকভাবে সাজানো হয় আমি nprজোর করে স্ট্রিংটি পেয়েছি । npuএবং nptএছাড়াও কাজ, এবং কোন ছোট হয়।


5

বাশ (+ কোর্টিল) 11 বাইট tes

Golfed

sort -rk1.2

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

প্রথম ক্ষেত্রের দ্বিতীয় অক্ষর (শব্দ) থেকে রেখার শেষ অবধি, "সাজানোর কী" দিয়ে, বিপরীত সাজান, অর্থাত:

uarter
ime
ickel
enny

পরীক্ষা

>echo penny nickel dime quarter|tr ' ' '\n'|sort -rk1.2

quarter
dime
nickel
penny

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





3

ভি , 8 7 বাইট

1 ডি বাইট সংরক্ষিত হয়েছে @ ডিজেএমসিমেহেমে ধন্যবাদ

Úçq/:m0

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

ভিজে @ ডিজেএমসিএমহেমের উত্তর দেখুন ( আমার চেয়ে 1 বাইট ছোট)

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

Ú                    " sort all lines "
 ç                   " globally "
  q/                 "  where there a q is matched, "
    :m0              "  move it to the top of the buffer "

1 বাইট বৃহত্তর এ এখানে একটি পুরানো সমাধান রয়েছে, তবে আমি সত্যিই এটি পছন্দ করি।

ভি , 8 বাইট

Ú/q
dGHP

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

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

ব্যাখ্যা

Ú        " sorts the lines

এখন বাফার এই ফর্ম্যাটে থাকবে:

dimes
nickels
pennies
quarters

এখনই কেবল একমাত্র কাজটি হল কোয়ার্টারগুলিকে শীর্ষে স্থানান্তর করা।

/q      " search for a q "
dG      " delete everything from the first quarter to the end of buffer "
HP      " and paste it at the top of the buffer

:m0বাইট সংরক্ষণের জন্য আপনার বিকল্প সমাধান করতে পারেন (এবং আমাকে Úçq/:m0
বেঁধে

@ ডিজেএমসিহেম ধন্যবাদ, টিআইএল সম্পর্কে:move
ক্রিটসি লিথোস


1

টি-এসকিউএল, 41 36 34 বাইট

select*from @ order by right(a,5)

ব্যাখ্যা

ধরুন ইনপুটটি @একটি একক কলামযুক্ত নামের একটি সারণী ভেরিয়েবেলে প্রাক-লোড হয়েছেa , যেখানে প্রতিটি মান বাছাই করার জন্য একটি মুদ্রা।

select * from @অংশ বয়লার-প্লেট 'রিটার্ন সব মান get' হয়। আসল যাদুটি order byক্লজে ঘটে ।

হিসাবে একই কৌশল ব্যবহার করে Johnathan অ্যালান , আমি সাজানোর শেষ পাঁচটি অক্ষর দ্বারা (এসকিউএল সমগ্র স্ট্রিং যদি এটা খুব ছোট ফিরে আসবে): arter, dime, ickel, penny


qএর পরের অক্ষরটি হ'ল p, সুতরাং একটি সাধারণ মোডের জন্য মানটির qচেয়ে কম ফল পাওয়া যায় যা প্রধান which আপনি প্রথমে 1 টি বিয়োগ করতে পারেন এবং তারপরে 7 এর একটি মডিউল কাজ করবে তবে এটি সম্ভবত 113 হিসাবে কমপক্ষে অনেকগুলি বাইট লাগবেpq
নীল

@ নীল হ্যাঁ, আমি বুঝতে পেরেছি 113 জন প্রধান হওয়ায় গণনা হ্রাস করার জন্য আমার প্রচেষ্টা নষ্ট হচ্ছে। এরকম -1 এবং তারপর গেলিক ভাষার 7 আরো বাইট (প্রয়োজনীয় প্রথম বন্ধনী সহ।
ব্রায়ান জে

1

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

a=>a.sort(([,...a],[,...b])=>b>a)

পরীক্ষার মামলা


1

বেফুঞ্জ, 158 বাইট

~:0`v0v4<~_
9:%8_^>8*`^1p9\+1g
$:!#@_1-0" ynnep">:#,_>
1-0" lekcin">:#,_>$:!#^_
" emid">:#,_>$:!#^_1-0
>:#,_$1>-:!#^_0" retrauq"
*84g9< ^*84g91-*84g94-*84g96-

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

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

আকারের দিক থেকে এটি অন্য ভাষার সাথে এখনও মোটেও প্রতিযোগিতামূলক নয়, তবে আমরা যদি স্ট্রিং বাছাইয়ের অনুশীলন হিসাবে চ্যালেঞ্জটি পরিচালনা করার চেষ্টা করতাম তবে এই পদ্ধতির চেয়ে অন্তত ভাল ছিল।



1

এপিএল (ডায়ালগ এপিএল) , 11 বাইট

স্ট্রিংগুলির তালিকা নেয় এবং ফেরত দেয়।

{⍵[⍋↑5⌽¨⍵]}

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

{ বেনামে ফাংশন:

⍵[] যুক্তি অনুসারে সূচিত

 এর আরোহী তৈরি সূচকগুলি

 ম্যাট্রিক্স যার সারি প্যাডযুক্ত

5⌽ পাঁচ ধাপ-আবর্তিত

¨⍵ যুক্তি আইটেম

}



1

কাস্তে , 3 বাইট

Öṙ9

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

আমার ব্র্যাচিয়েলগ উত্তর থেকে পোর্ট করা হয়েছে যা ইটিএইচ প্রডাকশনগুলির জ্যাপ উত্তরটি ছিন্ন করে তবে এটি কোনও সঠিক অনুবাদ নয় কারণ এটি সহজ অ্যাক্সেস-দ্য এনটি-এলিমেন্টের পরিবর্তে ঘূর্ণন ব্যবহার করে। সেখানে, আমি এটি করেছি কারণ ইনপুটটির শেষের আগে আপনাকে সূচী করতে দেয় না (যা সম্ভবত ভাষার বর্ণনামূলক প্রকৃতির কারণে অনেক পরিস্থিতিতে বেশ কার্যকর)। তুষ সালে ! আছে , ইনপুট শেষে গত আপনি সূচক দিন একই মডুলার মোড়ানো প্রায় যে Japt সঙ্গে ñg9ব্যবহার করে, কিন্তু এটা এত বিশেষ করে এই প্রোগ্রাম এক বাইট আর হচ্ছে শেষ হয়ে যাবে 1 থেকে রয়েছে: Ö!10

Ö      Sort by
 ṙ     rotation by
  9    9.

0

ব্যাচ, 82 বাইট

@for %%c in (quarter dime nickel penny)do @for %%a in (%*)do @if %%a==%%c echo %%c

কমান্ড-লাইন আর্গুমেন্ট এবং STDOUT এ আউটপুট হিসাবে ইনপুট নেয়। প্রতিটি মুদ্রায় মূল তালিকাটি ফিল্টার করার ফলে তালিকে একত্র করে কাজ করে।



0

রুবি, 31 বাইট

->s{s.sort_by{|i|i[1]}.reverse}

এটি সর্বদা "নিকেল" এবং "ডাইম" সঠিকভাবে বাছাই করে না।
দানিরো

0

রুবি, 30 বাইট

->m{m.sort_by{|s|s[3].ord^16}}

পরীক্ষামূলক এবং ত্রুটির দ্বারা জাদুকরী সংখ্যাগুলি পাওয়া গেছে। কিছুটা আনাড়ি, তবে ব্যবহারের চেয়ে খাটো .reverse


0

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

*.sort: {(<q d n p>Zxx 1..*).Bag{~m/./}}

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

*.sort: {%(<q d n p>Z=>1..*){~m/./}}

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

*.sort: {%(<q d n p>Z=>^4){~m/./}}

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

সম্প্রসারিত:

*\            # WhateverCode lambda ( this is the parameter )

.sort:        # sort using the following code block

{             # bare block lambda with implicit parameter 「$_」

  %(          # treat this list as a hash

    <q d n p> # list of first characters
    Z[=>]     # zipped using pair constructor
    ^4        # Range from 0 up-to 4 ( excludes 4 )

  ){          # get the value associated with this key

    ~m/./     # regex which gets the first character ( implicitly from 「$_」 )

  }

}



0

জাভা 8, 128 112 বাইট

এটি a এর জন্য ল্যাম্বডা এক্সপ্রেশন java.util.function.Function<String[],String[]>

s->{String r="";for(String k:"q d c p".split(" "))for(String t:s)if(t.contains(k))r+=" "+t;return r.split(" ");}

ব্যাখ্যা: ক্রমযুক্ত 4 টি মুদ্রার প্রত্যেকটির জন্য, ইনপুটটি দেখুন এবং প্রতিবার মুদ্রার অনন্য চরিত্রের জন্য একটি ম্যাচ হয় ফলাফলে মুদ্রার নাম যুক্ত করুন। ফলাফলটিকে একটি অ্যারেতে বিভক্ত করুন এবং এটি ফিরিয়ে দিন।


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