ब्रेन-फ्लैक कल एक साल का हो गया! इसके जन्मदिन के सम्मान में, हम एक PPCG स्टाइल बर्थडे पार्टी कर रहे हैं, जहाँ कई उपयोगकर्ता मस्तिष्क से संबंधित संबंधित पोस्ट करते हैं! हमें मनाने में मदद करें! :)
ब्रेन-फ्लैक एक गूढ़ भाषा है जिसे मैंने लिखा था कि सभी कमांड कोष्ठक हैं और सभी कोष्ठक पूरी तरह से मेल खाने चाहिए। मेरी अपनी परिभाषा उधार लेने के लिए :
इस चुनौती के उद्देश्य के लिए, "ब्रैकेट" इन वर्णों में से एक है:
()[]{}<>
।कोष्ठक की एक जोड़ी को "मिलान" माना जाता है यदि उद्घाटन और समापन कोष्ठक सही क्रम में हैं और उनके अंदर कोई वर्ण नहीं है, जैसे कि
() []{}
या अगर इसके अंदर का हर सबमेलमेंट भी मैच हो जाए।
[()()()()] {<[]>} (()())
घनीभूत परतों को भी कई परतों में घोंसला बनाया जा सकता है।
[(){<><>[()]}<>()] <[{((()))}]>
एक स्ट्रिंग माना जाता है "पूरी तरह से मिलान" अगर और केवल अगर:
हर एक पात्र एक कोष्ठक है,
ब्रैकेट की प्रत्येक जोड़ी में सही उद्घाटन और समापन ब्रैकेट है और सही क्रम में है
ब्रेन-फ्लैक के पहले जन्मदिन के उपलक्ष्य में, आज की चुनौती कोष्ठक के असंतुलित सेट लेने के बारे में है, और यह निर्धारित करने के लिए कि इसे मान्य मस्तिष्क-फ्लैक बनाने के लिए किस प्रकार के संचालन की आवश्यकता है।
उदाहरण के लिए,
((
मान्य मस्तिष्क-फ्लैक कोड नहीं है, लेकिन अगर हम))
इसे जोड़ते हैं, तो यह बन जाता है(())
, जो पूरी तरह से संतुलित है, और इसलिए मान्य मस्तिष्क-फ्लैक है। जो इस इनपुट को उपयुक्त बनाता है ।इसी तरह,
>}
मान्य नहीं है, लेकिन हम{<
इसे बनाने के लिए प्रस्तुत कर सकते हैं{<>}
, जो वैध है। जो इस इनपुट को प्रीपेन्डेबल बनाता है ।कुछ इनपुट थोड़े अधिक जटिल हैं। उदाहरण के लिए,
)][({
जोड़कर या पूर्वसर्ग करके शुद्ध रूप से वैध नहीं बनाया जा सकता है। लेकिन इसे तैयार करने और जोड़कर वैध बनाया जा सकता है । इसलिए, यह इनपुट प्रीपेन्डेबल और एपेंडेबल दोनों है[(
})]
।अन्त में, कुछ इनपुट्स को कभी भी जोड़-तोड़ या प्रीपेडिंग के संयोजन द्वारा मान्य ब्रेन-फ्लैक कोड नहीं बनाया जा सकता है। उदाहरण के लिए,
(>
कभी भी वैध नहीं बनाया जा सकता। (Prepending<
बनाता है<(>
, और appending)
बनाता है(>)
, न तो जिनमें से मान्य हैं) इसलिए, इस इनपुट न appendable या prependable है।
आज की चुनौती के लिए, आपको एक प्रोग्राम या फ़ंक्शन लिखना होगा जो कि ब्रैकेट की एक स्ट्रिंग लेता है और निर्धारित करता है कि क्या स्ट्रिंग है
appendable
prependable
both
neither
प्रत्येक मामले के प्रतिनिधित्व के लिए आप किन मूल्यों का उपयोग कर सकते हैं। उदाहरण के लिए, आउटपुट 1, 2, 3, 4
, 'a', 'p', 'b', 'n'
या 1, 'foo', 3.1415, -17
, या जो भी ठीक है। जब तक प्रत्येक आउटपुट अलग और सुसंगत है , तब तक ठीक है। आप चाहिए हालांकि, स्पष्ट रूप से जो उत्पादन मेल खाती है जो मामले को निर्दिष्ट करें।
आप इस मान को जो भी प्रारूप में लौटा सकते हैं, वह सबसे अधिक सुविधाजनक है (उदाहरण के लिए, किसी फ़ंक्शन से लौटकर, STDOUT पर प्रिंट करना, तर्कों को संशोधित करना, फ़ाइल में लिखना आदि)।
आप मान सकते हैं कि इनपुट मान्य ब्रेन-फ्लैक या खाली कभी नहीं होगा।
उदाहरण
निम्नलिखित निविष्टियाँ सभी प्रस्तुत करने योग्य हैं :
))
(((()()())))}
)>}]
()[]{}<>)
ये सभी उचित हैं :
(({}{})
((((
([]()())(
{<<{
ये दोनों हैं :
))((
>()[(()){
>{
और ये सभी न तो हैं :
)(}
{(((()()()))>
[}
((((((((((>
((((((((((<>()]
हमेशा की तरह, यह कोड-गोल्फ है , इसलिए मानक कमियां लागू होती हैं, और बाइट्स में सबसे कम जवाब जीतता है!
यह चुनौती ब्रेन-फ्लैक में विशेष रूप से कठिन है, इसलिए ब्रेन-फ्लैक में लिखे किसी भी और हर उत्तर के लिए अधिकतम ब्राउनी इंगित करता है। :)
][
है नहीं कुछ भी नहीं आप जोड़ सकते हैं के रूप में यह वैध बना सकते हैं appendable,। इसी तरह, यह प्रीपेन्डेबल नहीं है। यह ... 'डालने योग्य' है! पूरे मान्य ब्रेनफ्लक को बनाने के लिए आप इसे एक स्ट्रिंग में सम्मिलित कर सकते हैं।
You can assume that the input will never be valid brain-flak or empty.
maximum brownie points
मुझे लगता है कि इसके बजाय अधिकतम ब्राउनी पॉइंट और कुकीज़ की पेशकश ब्रेन-फ़्लकिंग को केवल ब्राउनी पॉइंट से अधिक चुनौती देती है, क्योंकि मुझे नहीं लगता कि यह किसी भी भाषा में बिल्कुल तुच्छ है , अकेले ब्रेन-फ्लैक को छोड़ दें। : पी