परिचय
मदद! मैंने गलती से अपना टीआई -84 कैलकुलेटर मेरी खिड़की से बाहर कर दिया (यह मत पूछो कैसे) और वह टूट गया। मेरे पास कल एक गणित की परीक्षा है और जो एकमात्र कैलकुलेटर मुझे मिल सकता है वह इन बटनों में से एक है:
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
। उपरोक्त सभी उदाहरण मान्य हैं क्योंकि वहाँ एक वैध है। , निरंतर आउटपुट जो उपयोगकर्ता को कैलकुलेटर को साफ़ करने और एक संख्या याद रखने की आवश्यकता नहीं है)। - आप यह मान सकते हैं कि
/
इनपुट के बाद केवल एक ही पूर्णांक होगा , जैसे कि इनपुट होने21/(7*3)
पर पहली धारणा भी पास नहीं होगी। - आप मान सकते हैं कि हमेशा
*
एक पूर्णांक और एक बाएं कोष्ठक के बीच होगा (मान्य:,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)
हमेशा एक रहेगा *
।