परिचय
पता चलता है, एलियंस जितना हम करते हैं, उतना ही प्यार करता है। हमारे द्वारा अब तक की गई प्रत्येक विदेशी दौड़ का अपना संस्करण है 2spooky4me
( निम्न प्रश्न देखें ) और समकक्ष, हालांकि, कुछ भिन्नता के साथ। ग्रह CUTE1f के निवासियों को बहुत सारे स्पूक संभाल नहीं सकते हैं, इसलिए उनका पसंदीदा स्पूक है 1spooky2me
, जबकि कंकाल 7 मेकर्स उन्हें कुछ स्पूक से प्यार करते हैं, इसलिए वे उपयोग करते हैं 9spooky11me
।
चुनौती
मेमे का अनुवाद करना कठिन काम है, इसलिए आपको इन लोगों को मेमेनेट तक सही तरीके से पहुंचने में मदद करने के लिए एक सार्वभौमिक मेम ट्रांसलेटर लिखने का काम सौंपा गया है। आपका कार्यक्रम एक मेम और एक परिवर्तन को उस मेम में अंकों के अनुक्रमों पर लागू करने के लिए स्वीकार करेगा, जो किसी अलग ग्रह के निवासियों के लिए उपयुक्त हो।
इनपुट
आपके प्रोग्राम को दो स्ट्रिंग इनपुट प्राप्त होंगे:
- इनपुट मेमे (उदा
2spooky4me
)। मेल खाता है [a-zA-Z0-9]+
।
- इसे लागू करने के लिए परिवर्तन (जैसे
+1
, से जाने के 2spooky4me
लिए 3spooky5me
)। मेल खाता है [+\-*/^]\d+
(आप को स्वीकार करना चाहिए +
, -
, *
, /
, और ^
ऑपरेटर के रूप में, अपनी भाषा में देशी प्रतिनिधित्व की परवाह किए बिना)।
उत्पादन
आपके प्रोग्राम को इनपुट मेमे में अंकों के अनुक्रम में लागू किए गए परिवर्तन के साथ एक स्ट्रिंग आउटपुट (मानक आउटपुट या समकक्ष के लिए मुद्रित) को वापस करना होगा। घटनाओं के एक अजीब मोड़ में, यह भी पता चला है कि अब तक सामना किए गए सभी दौड़ आंशिक लोगों पर अभिन्न मेमों को पसंद करते हैं, इसलिए इन परिवर्तनों को पूर्णांक अंकगणित (जैसे 1spooky1me /2
परिणाम में होना चाहिए 0spooky0me
) करना चाहिए ।
उदाहरण
मानक अंकगणितीय संचालन लागू होते हैं:
Input: 2spooky4me +1
Output: 3spooky5me
Input: 2spooky4me -1
Output: 1spooky3me
Input: 2spooky4me *15
Output: 30spooky60me
Input: 10spooky900me /5
Output: 2spooky180me
अंक अनुक्रम अभिन्न हैं; पूर्णांक विच्छेदन इस तरह के मामलों में होना चाहिए:
Input: idontunderstandmemes3 /2
Output: idontunderstandmemes1
आपके इनपुट में कोई अंक अनुक्रम नहीं हो सकता है:
Input: notreallyafunnymeme *100
Output: notreallyafunnymeme
भले ही यह आपकी पसंद की भाषा में एक देशी ऑपरेशन न हो, आपको एक्सप्रेशन का समर्थन करना चाहिए:
Input: 2spooky4me ^3
Output: 8spooky64me
स्ट्रिंग में अंक अनुक्रमों की संख्या की स्ट्रिंग लंबाई पर कोई सीमा नहीं है:
Input: some1meme2sequences3can4be5really6long7 /2
Output: some0meme1sequences1can2be2really3long3
परिशिष्ट
यदि आपकी भाषा एक भाषा सुविधा के रूप में मनमाने ढंग से सटीक पूर्णांक का समर्थन करती है, तो आपको उन का उपयोग करना चाहिए। यदि ऐसा नहीं होता है, तो आपको मनमानी-सटीक पूर्णांक का समर्थन करने की आवश्यकता नहीं है। उदाहरण के लिए, आपको Integer
इसकी जगह हास्केल का उपयोग करना चाहिए Int
क्योंकि यह भाषा के हिस्से के रूप में उपलब्ध है; में Java
, आपको उपयोग करने की आवश्यकता नहीं है BigInteger
क्योंकि यह एक पुस्तकालय सुविधा है, न कि एक भाषा सुविधा।
Input: 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000spooky4me /2
Output: 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000spooky2me
यह कोड-गोल्फ है , इसलिए मानक कमियां निषिद्ध हैं, और बाइट्स जीत में सबसे छोटा जवाब है!
लीडरबोर्ड
इस पोस्ट के निचले हिस्से में स्टैक स्निपेट उत्तर से लीडरबोर्ड उत्पन्न करता है) ए प्रति भाषा में सबसे छोटे समाधान की सूची के रूप में और बी) एक समग्र लीडरबोर्ड के रूप में।
यह सुनिश्चित करने के लिए कि आपका उत्तर दिखाई देता है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:
## 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
<style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; } table thead { font-weight: bold; } table td { padding: 5px; }</style><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="language-list"> <h2>Shortest Solution 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> <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> <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><script>var QUESTION_ID = 79809; var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var OVERRIDE_USER = 45941; var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page; function answersUrl(index) { return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER; } function commentUrl(index, answers) { return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER; } function getAnswers() { jQuery.ajax({ url: answersUrl(answer_page++), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { answers.push.apply(answers, data.items); answers_hash = []; answer_ids = []; data.items.forEach(function(a) { a.comments = []; var id = +a.share_link.match(/\d+/); answer_ids.push(id); answers_hash[id] = a; }); if (!data.has_more) more_answers = false; comment_page = 1; getComments(); } }); } function getComments() { jQuery.ajax({ url: commentUrl(comment_page++, answer_ids), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { data.items.forEach(function(c) { if (c.owner.user_id === OVERRIDE_USER) answers_hash[c.post_id].comments.push(c); }); if (data.has_more) getComments(); else if (more_answers) getAnswers(); else process(); } }); } getAnswers(); var SCORE_REG = /<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/; var OVERRIDE_REG = /^Override\s*header:\s*/i; function getAuthorName(a) { return a.owner.display_name; } function process() { var valid = []; answers.forEach(function(a) { var body = a.body; a.comments.forEach(function(c) { if(OVERRIDE_REG.test(c.body)) body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>'; }); var match = body.match(SCORE_REG); if (match) valid.push({ user: getAuthorName(a), size: +match[2], language: match[1], link: a.share_link, }); else console.log(body); }); valid.sort(function (a, b) { var aB = a.size, bB = b.size; return aB - bB }); var languages = {}; var place = 1; var lastSize = null; var lastPlace = 1; valid.forEach(function (a) { if (a.size != lastSize) lastPlace = place; lastSize = a.size; ++place; var answer = jQuery("#answer-template").html(); answer = answer.replace("{{PLACE}}", lastPlace + ".") .replace("{{NAME}}", a.user) .replace("{{LANGUAGE}}", a.language) .replace("{{SIZE}}", a.size) .replace("{{LINK}}", a.link); answer = jQuery(answer); jQuery("#answers").append(answer); var lang = a.language; lang = jQuery('<a>'+lang+'</a>').text(); languages[lang] = languages[lang] || {lang: a.language, lang_raw: lang.toLowerCase(), user: a.user, size: a.size, link: a.link}; }); var langs = []; for (var lang in languages) if (languages.hasOwnProperty(lang)) langs.push(languages[lang]); langs.sort(function (a, b) { if (a.lang_raw > b.lang_raw) return 1; if (a.lang_raw < b.lang_raw) return -1; return 0; }); for (var i = 0; i < langs.length; ++i) { var language = jQuery("#language-template").html(); var lang = langs[i]; language = language.replace("{{LANGUAGE}}", lang.lang) .replace("{{NAME}}", lang.user) .replace("{{SIZE}}", lang.size) .replace("{{LINK}}", lang.link); language = jQuery(language); jQuery("#languages").append(language); } }</script>