ভূমিকা
দেখা যাচ্ছে, এলিয়েনরা মেমসকে ঠিক তেমন ভালোবাসে। আমরা এখনও অবধি প্রতিটি এলিয়েন রেসের মুখোমুখি তাদের নিজস্ব সংস্করণ রয়েছে 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>