इस चुनौती का लक्ष्य इनपुट पाठ लेने के लिए सबसे छोटा फ़ंक्शन / प्रोग्राम लिखना है, इसे नीचे दी गई विधि का उपयोग करके एन्क्रिप्ट करें, और परिणाम लौटाएं।
एक उदाहरण के रूप में, मैं स्ट्रिंग का उपयोग करूंगा hello world
।
सबसे पहले , इनपुट टेक्स्ट प्राप्त करें।
hello world
दूसरा , स्ट्रिंग को टर्नरी (बेस 3) में परिवर्तित करें। इस कुंजी का उपयोग करें:
a = 000
b = 001
c = 002
d = 010
e = 011
f = 012
g = 020
...
w = 211
x = 212
y = 220
z = 221
[space] = 222
इस कुंजी के साथ, hello world
हो जाता है 021011102102112222211112122102010
, जैसा कि नीचे देखा।
h e l l o w o r l d
021 011 102 102 112 222 211 112 122 102 010
तीसरा , पहले अंक को अंत तक ले जाएं।
021011102102112222211112122102010
becomes
210111021021122222111121221020100
चौथा , उसी कुंजी का उपयोग करके संख्या को वापस स्ट्रिंग में परिवर्तित करें।
210 111 021 021 122 222 111 121 221 020 100
v n h h r n q z g j
अंत में , एन्क्रिप्ट किए गए पाठ को वापस करें।
vnhhr nqzgj
यहाँ कुछ नमूना पाठ और उनके आउटपुट दिए गए हैं:
the turtle ==> dvo fh ego
python ==> uudwqn
code golf ==> hpjoytqgp
चूंकि यह कोड गोल्फ है, बाइट्स में सबसे कम प्रविष्टि जीतती है। यदि अक्षरों में से कुछ अक्षर या स्थान नहीं है तो त्रुटियों की अनुमति है। यह मेरी पहली चुनौती है, इसलिए कोई भी सुझाव मददगार से अधिक होगा।
सौभाग्य!
लीडरबोर्ड:
var QUESTION_ID=54643;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 getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function shouldHaveHeading(e){var a=!1,r=e.body_markdown.split("\n");try{a|=/^#/.test(e.body_markdown),a|=["-","="].indexOf(r[1][0])>-1,a&=LANGUAGE_REG.test(e.body_markdown)}catch(n){}return a}function shouldHaveScore(e){var a=!1;try{a|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(r){}return a}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.sort(function(e,a){var r=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0],n=+(a.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0];return r-n});var e={},a=1,r=null,n=1;answers.forEach(function(s){var t=s.body_markdown.split("\n")[0],o=jQuery("#answer-template").html(),l=(t.match(NUMBER_REG)[0],(t.match(SIZE_REG)||[0])[0]),c=t.match(LANGUAGE_REG)[1],i=getAuthorName(s);l!=r&&(n=a),r=l,++a,o=o.replace("{{PLACE}}",n+".").replace("{{NAME}}",i).replace("{{LANGUAGE}}",c).replace("{{SIZE}}",l).replace("{{LINK}}",s.share_link),o=jQuery(o),jQuery("#answers").append(o),e[c]=e[c]||{lang:c,user:i,size:l,link:s.share_link}});var s=[];for(var t in e)e.hasOwnProperty(t)&&s.push(e[t]);s.sort(function(e,a){return e.lang>a.lang?1:e.lang<a.lang?-1:0});for(var o=0;o<s.length;++o){var l=jQuery("#language-template").html(),t=s[o];l=l.replace("{{LANGUAGE}}",t.lang).replace("{{NAME}}",t.user).replace("{{SIZE}}",t.size).replace("{{LINK}}",t.link),l=jQuery(l),jQuery("#languages").append(l)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*\s*([^,]+)/;
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>
uint64
) में शक्तियों को बढ़ाने के लिए पैक किया जाए 27
। एक अंक द्वारा विस्थापन तब इस बड़े पूर्णांक को गुणा करने के बराबर होगा 3
, और दूसरे छोर पर पहले अंक का परिचय बस एक अतिरिक्त होगा। लेकिन जटिलताएं हैं, जैसे कि अंतिम "कैरी" (शायद एक mod
ऑपरेशन के माध्यम से ) को त्यागना , और मैं इसे कुछ बाइट्स के साथ काम करने के लिए नहीं मिला