पृष्ठभूमि
स्टैक कैट्स मार्टिन एंडर द्वारा बनाई गई एक प्रतिवर्ती गूढ़ भाषा है। स्टैक कैट्स में प्रत्येक कमांड या तो स्वयं का व्युत्क्रम है (एक सममित चरित्र के रूप में प्रतिनिधित्व किया जाता है, जैसे -_:T|), या इसका व्युत्क्रम कमांड (दर्पण छवि के रूप में प्रतिनिधित्व किया जाता है, जैसे () {} [] <>)। स्टैक कैट्स की एक मजबूत सिंटैक्टिक आवश्यकता है कि पूरे कार्यक्रम को खुद की दर्पण छवि होनी चाहिए। ध्यान दें कि इसका मतलब है कि कोई भी मान्य स्टैक कैट्स प्रोग्राम एक प्राकृतिक दर्पण-छवि अस्पष्ट है ।
यहां स्टैक कैट्स का पूरा कमांड सेट है:
- स्व सममित:
!*+-:=ITX^_| - सममित जोड़े:
(){}[]<>\/
कोई अन्य वर्ण अमान्य है; किसी भी पात्र के ऊपर सेट चरित्र में नहीं होने वाले किसी भी इनपुट को गलत आउटपुट देना चाहिए।
भाषा में अतिरिक्त बाधा है कि ()और {}जोड़े हमेशा संतुलित होनी चाहिए, लेकिन सरलता के लिए, आपको इस स्थिति की जांच करने की आवश्यकता नहीं है।
निम्नलिखित एक मान्य स्टैक कैट्स प्रोग्राम के कुछ उदाहरण हैं (फिर से, ध्यान दें कि आप संतुलित पैरेन्स के लिए जाँच नहीं करते हैं):
{[+]==[+]}
[)>^<(]
({T)}|{(T})
<(*]{[:!-_:>}<[<)*(>]>{<:_-!:]}[*)>
ये नहीं हैं:
b<+>d
())(
({[<++<]})
चुनौती
एक प्रोग्राम या फ़ंक्शन लिखें, जो निर्धारित करता है कि दिए गए स्ट्रिंग एक मान्य स्टैक कैट्स प्रोग्राम है। आपका कोड एक प्राकृतिक दर्पण-छवि एम्बिग्राम भी होना चाहिए , जिसका अर्थ है:
- आपका कोड स्वयं की दर्पण छवि होना चाहिए।
- आपके कोड में एक या एक से अधिक नई सुर्खियां हो सकती हैं, जब तक कि पूरे कोड को स्वाभाविक रूप से प्रदर्शित किया जाता है, स्वयं की दर्पण छवि है।
- आप प्रत्येक पंक्ति में अनुगामी व्हाट्सएप को छोड़ या जोड़ सकते हैं, क्योंकि यह डिस्प्ले को नहीं बदलता है।
- टैब वर्णों की अनुमति नहीं है क्योंकि उनके प्रदर्शन में थोड़ी अस्पष्टता है।
नोट: आपके कोड में एक मान्य स्टैक कैट्स प्रोग्राम होना आवश्यक नहीं है; इसमें कुछ अतिरिक्त वर्ण हो सकते हैं जिन्हें स्टैक कैट्स में अनुमति नहीं है। (पूरी सूची के लिए नीचे देखें।)
उदाहरण के लिए, निम्नलिखित दो कार्यक्रम सममित हैं (और इस प्रकार एक वैध सबमिशन ), जबकि तीसरा नहीं है:
({bTd})
[<q|p>]
({bTd})
IXI
({bTd})
IXI
- "मिरर समरूपता" के बारे में, केवल स्टैक कैट्स-स्टाइल समरूपता पर विचार किया जाता है (उदाहरण के
({IH})लिए एक मान्य सबमिशन नहीं है, भले ही इसमें दर्पण समरूपता हो)। - आपके कोड में केवल वर्णों के ये सेट हो सकते हैं, साथ ही नई पंक्ति:
- स्व-सममित: स्थान (
0x20) +!"'*+-.8:=AHIMOTUVWXY^_ovwx| - सममित जोड़े:
()/\<>[]bdpq{}
- स्व-सममित: स्थान (
एसई पर कोड के रूप में प्रदर्शित होने पर वर्ण सेट को सख्ती से सममित या स्व-सममिति चुना जाता है।
इनपुट और आउटपुट
इनपुट रेंज मुद्रण योग्य ASCII वर्णों की कोई एक-पंक्ति स्ट्रिंग है ।
आप एक स्ट्रिंग के रूप में इनपुट, चार्ट की एक सूची या एएससीआईआई मूल्यों की सूची चुन सकते हैं।
आप या तो आउटपुट चुन सकते हैं:
- आपकी पसंद की भाषा द्वारा परिभाषित सत्य / मिथ्या मूल्यों में से कोई भी
- वास्तविक परिणाम मान इनपुट के बीच भिन्न हो सकते हैं (उदाहरण के लिए एक सत्य इनपुट के लिए आउटपुट 1 और दूसरे सत्य के लिए 2)।
- सत्य और झूठे मूल्यों की अदला-बदली की अनुमति नहीं है।
- सत्य / असत्य के लिए कोई भी दो स्थिर मूल्य क्रमशः
- इस स्थिति में, परिणाम मान दो स्थिर मानों में से एक होना चाहिए।
आपको अपनी सबमिशन विधि और आउटपुट मान को अपने सबमिशन में निर्दिष्ट करना चाहिए।
जीतने की स्थिति
यह कोड-गोल्फ है , इसलिए प्रत्येक भाषा में सबसे कम बाइट्स जीतती हैं।
टिप्पणियाँ
- मानक कमियां हमेशा की तरह मनाई जाती हैं।
- बेशक आप इसे स्टैक कैट्स में हल कर सकते हैं, लेकिन मौका यह है कि आप एक ध्वज का उपयोग नहीं कर सकते हैं जो आपके कोड आकार को आधे से कम करने की अनुमति देता है। और यह गंभीरता से कठिन भाषा है: पी
#ठुकराया गया?