कई प्रोग्रामिंग भाषाओं को पूरी तरह से मुद्रण योग्य ASCII, टैब और newlines का उपयोग करके लिखा जाता है। इन 97 अक्षरों को फिर 8-बिट बाइट्स में संग्रहीत किया जाता है (जो वास्तव में 256 अलग-अलग वर्णों को धारण करने में सक्षम हैं!), जो कि बहुत ही अक्षम है - विशेष रूप से कोड-गोल्फिंग में, जहां हर बाइट मायने रखती है! इस चुनौती में, आप आधार रूपांतरण का उपयोग करके अपने स्कोर को कम करने में सक्षम होंगे।
चुनौती
आपका प्रोग्राम / फंक्शन इनपुट के रूप में एक स्ट्रिंग या कैरेक्टर ऐरे को लेता है, जो तब आधार -97 नंबर के रूप में व्याख्या करता है । यह तब इसे एक आधार-256 संख्या में परिवर्तित करता है , और इस संख्या का प्रतिनिधित्व करने के लिए आवश्यक प्रतीकों (यानी, बाइट्स) की संख्या को गिनता है। यह गणना आपके प्रोग्राम / फ़ंक्शन का आउटपुट / रिटर्न वैल्यू होगी।
बेस -2 और बेस -10 (बाइनरी और दशमलव) का उपयोग करके एक सरल उदाहरण: यदि इनपुट है 10110
, तो आउटपुट 2 होगा, चूंकि 10110 2 = 22 10 (आउटपुट का प्रतिनिधित्व करने के लिए आवश्यक दो अंक)। इसी तरह, 1101 2 13 10 बनता है , साथ ही 2 का आउटपुट देता है, और 110 2 6 10 हो जाता है , इसलिए तब आउटपुट 1 होगा।
इनपुट स्ट्रिंग में सभी 95 मुद्रण योग्य ASCII वर्ण, साथ ही साथ नईलाइन \n
और शाब्दिक टैब हो सकते हैं \t
, जो आपके आधार रूपांतरण के लिए 97 प्रतीकों का स्रोत वर्णमाला बनाता है । सटीक वर्णमाला इस प्रकार किया जाएगा (प्रतिस्थापन \t
और \n
वास्तविक शाब्दिक टैब और न्यू लाइन के साथ; टिप्पणी न्यू लाइन निम्नलिखित शाब्दिक अंतरिक्ष) :
\t\n !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
ध्यान दें कि इस वर्णमाला का क्रम महत्वपूर्ण है: उदाहरण के लिए, बेस -97 \t
दशमलव से मेल खाती है 0
, और !
दशमलव से मेल खाती है 3
।
कुछ टेस्टकेस: (आपको खाली स्ट्रिंग को संभालने की आवश्यकता नहीं है)
Input Output
'example@domain.com' 15
'All your base are belong to us!' 26
' abcd' 9
'~ abcd' 10
'ABCDEFGHIJK' 9
'zyxwvutsrpq' 10
'{".~"}.~' 7
'\t\t\t\t\t\t\t\t' 1 (with \t a literal tab; the result is 0, which can be represented with 1 byte)
'!\t\t\t\t\t\t\t\t' 7 (with \t a literal tab)
स्कोरिंग
यदि आपकी प्रविष्टि केवल मुद्रण योग्य ASCII, newline और / या टैब का उपयोग करती है: आपके प्रोग्राम का स्कोर आपके प्रोग्राम का आउटपुट होगा, जब इनपुट के रूप में अपना स्वयं का सोर्स कोड दिया जाता है।
यदि आपकी प्रविष्टि किसी ऐसे वर्ण का उपयोग करती है जो मुद्रण योग्य ASCII, newline या tab नहीं है: तो आपके प्रोग्राम का स्कोर कोड-गोल्फ की तरह ही बाइट्स की संख्या है ।