ভূমিকা
সাহায্য করুন! আমি ঘটনাক্রমে আমার টিআই -৪৪ ক্যালকুলেটরটি আমার উইন্ডোটি বাইরে ফেলেছি (জিজ্ঞাসা করবেন না কীভাবে) এবং এটি ভেঙে যায়। আগামীকাল আমার কাছে একটি গণিত পরীক্ষা আছে এবং আমি এই বোতামগুলির সাথে একমাত্র ক্যালকুলেটর খুঁজে পেতে পারি:
7 8 9 +
4 5 6 -
1 2 3 *
0 = /
আমার গণিত পরীক্ষাটি এক্সপ্রেশন মূল্যায়নের উপর পর্যালোচনা পরীক্ষা। আমার একটি এক্সপ্রেশন নিতে যেমন একটি প্রোগ্রাম 1+(5*4)/7
প্রয়োজন এবং এটিকে আমার অতিরিক্ত ক্যালকুলেটরে সমাধানের জন্য প্রয়োজনীয় কীস্ট্রোকগুলিতে রূপান্তর করি। (এবং আপনি যদি ভাবছিলেন তবে বাস্তবে আমার সাথে এটি ঘটেছে)।
চ্যালেঞ্জ
একটি খালি ইনপুট ধারণকারী স্ট্রিং প্রদত্ত শুধুমাত্র অক্ষর 0-9
, (
, )
, +
, -
, *
, এবং /
, আউটপুট একটি স্থান বিভাজিত স্ট্রিং কীস্ট্রোকগুলি (যেমন। 1 + 3 / 3 =
)। আউটপুট শেষে সর্বদা একটি সমান চিহ্ন থাকতে হবে। স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।
উদাহরণ:
- ইনপুট
1+(5*4)/7
:, আউটপুট:5 * 4 / 7 + 1 =
- ইনপুট
6*(2/3)
:, আউটপুট:2 / 3 * 6 =
- ইনপুট
(7-3)/2
:, আউটপুট:7 - 3 / 2 =
এই চ্যালেঞ্জটিকে আরও সহজ করার জন্য:
- আপনি ধরে নিতে পারেন যে ইনপুটটির সাথে এটির সাথে সংযুক্ত কীস্ট্রোকের একটি সিরিজ রয়েছে যার জন্য ক্যালকুলেটরটি সাফ করার প্রয়োজন
1-(7*3)
হয় না ( এটি বৈধ নয় কারণ এটি আপনাকে সন্ধান করতে হবে7 * 3
, তারপরে ক্যালকুলেটরটি সাফ করুন1 - 21
the উপরের সমস্ত উদাহরণ বৈধ তাই যেহেতু একটি আছে , অবিচ্ছিন্ন আউটপুট যা ব্যবহারকারীর ক্যালকুলেটরটি সাফ করার প্রয়োজন হয় না এবং একটি সংখ্যা মনে রাখে)। - আপনি ধরে নিতে পারেন যে এ এর পরে কেবল একটি একক পূর্ণসংখ্যা থাকবে
/
, যেমন কোনও ইনপুট যেমন21/(7*3)
প্রথম অনুমানটি পাস না করে having - আপনি ধরে নিতে পারেন যে সর্বদা
*
পূর্ণসংখ্যা এবং বাম বন্ধনীগুলির মধ্যে একটি সর্বদা থাকবে (বৈধ:,6*(7)
অবৈধ6(7)
:)। - আপনি ধরে নিতে পারেন ইনপুটটি সর্বদা পূর্ণসংখ্যার আউটপুট উত্পাদন করে।
- আপনি ধরে নিতে পারেন ইনপুটটিতে কেবল তিনটি স্তরের বন্ধনী রয়েছে।
অ উদাহরণ
2-(14/2)
যেমন আপনাকে যা করতে হবে হবে14 / 2
, তারপর পরিষ্কার , তারপর2 - 7
।36/(2*3)
যেমন আপনাকে যা করতে হবে হবে2 * 3
, তারপর পরিষ্কার , তারপর36 / 6
।1024*4/(1*2+2)
যেমন আপনাকে যা করতে হবে হবে1*2+2
, তারপর পরিষ্কার , তারপর1024 * 4 / 4
।
বোনাসেস
- -5% যদি আপনার প্রোগ্রামটি প্রথম বন্ধনীর গুণকে চিনতে পারে (এটি এটি জানেন
6(7)=6*(7)
)। - -5% (আপনার প্রোগ্রাম দশমিক সংখ্যার ইনপুট সব ব্যবস্থা করতে সক্ষম যদি
3.4
,2.75
,7.8
) এবং আউটপুট অন্তর্ভুক্ত.
(যেমন একটা হতে হবে.
এই ক্ষেত্রে আমার অতিরিক্ত ক্যালকুলেটর কী)। - -5% যদি আপনার প্রোগ্রামটি সীমাহীন স্তরের বন্ধনীগুলির পরিচালনা করতে পারে।
এটি কোড-গল্ফ , বাইটের মধ্যে সংক্ষিপ্ততম কোড (বোনাস সহ) জয়!
লিডারবোর্ড
নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।
আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেম্পলেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:
## Language Name, N bytes
N
আপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:
## Ruby, <s>104</s> <s>101</s> 96 bytes
যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:
## Perl, 43 + 2 (-p flag) = 45 bytes
আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
var QUESTION_ID=61751,OVERRIDE_USER=141697;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
6(7)
ঘটবে না, এটি বলছে যে চিহ্ন ?
মধ্যে 6?(7)
সবসময় একটি হতে হবে *
।