लोकप्रिय और (और आवश्यक) कंप्यूटर विज्ञान की किताब, पीटर लिन्ज़ द्वारा औपचारिक भाषाओं और ऑटोमेटा का एक परिचय , निम्नलिखित औपचारिक भाषा अक्सर कहा जाता है:
मुख्य रूप से क्योंकि इस भाषा को परिमित-राज्य ऑटोमेटा के साथ संसाधित नहीं किया जा सकता है। इस अभिव्यक्ति का अर्थ है "भाषा एल में 'के बाद के सभी तार शामिल हैं' के बाद, जिसमें 'ए और' बी की संख्या बराबर और गैर-शून्य हैं"।
चुनौती
एक कार्यशील प्रोग्राम / फ़ंक्शन लिखें, जो एक स्ट्रिंग प्राप्त करता है, जिसमें केवल "s" और "b" s होता है , क्योंकि इनपुट और रिटर्न / एक सत्य मान आउटपुट करता है , यह कहते हुए कि क्या यह स्ट्रिंग औपचारिक भाषा एल है।
आपका प्रोग्राम किसी भी बाह्य संगणना उपकरण का उपयोग नहीं कर सकता है, जिसमें नेटवर्क, बाहरी कार्यक्रम आदि शामिल हैं। शेल इस नियम का एक अपवाद हैं; बैश, उदाहरण के लिए, कमांड लाइन उपयोगिताओं का उपयोग कर सकते हैं।
आपके कार्यक्रम को परिणाम "तार्किक" तरीके से वापस करना / आउटपुट करना चाहिए, उदाहरण के लिए: 0 के बजाय 10 वापस करना, "बीप" ध्वनि, स्टडआउट के लिए आउटपुट आदि अधिक जानकारी यहां।
मानक कोड गोल्फ नियम लागू होते हैं।
यह एक कोड-गोल्फ है । बाइट्स में सबसे छोटा कोड जीतता है। सौभाग्य!
सत्य परीक्षण के मामले
"ab"
"aabb"
"aaabbb"
"aaaabbbb"
"aaaaabbbbb"
"aaaaaabbbbbb"
झूठे परीक्षण के मामले
""
"a"
"b"
"aa"
"ba"
"bb"
"aaa"
"aab"
"aba"
"abb"
"baa"
"bab"
"bba"
"bbb"
"aaaa"
"aaab"
"aaba"
"abaa"
"abab"
"abba"
"abbb"
"baaa"
"baab"
"baba"
"babb"
"bbaa"
"bbab"
"bbba"
"bbbb"
empty string == truthy
और non-empty string == falsy
स्वीकार्य हो?
a^n b^n
केवल एस की संख्या के a
बराबर संख्या के बजाय या इसी तरह का उल्लेख b
)