हर प्रोग्रामर जानता है कि कोष्ठक []{}()<>
वास्तव में मजेदार हैं। इस मज़ा को तेज करने के लिए, इंटरवॉन्च ब्रैकेट्स के समूहों को प्यारा और फजी आरेखों में बदला जा सकता है।
मान लीजिए कि आपके पास एक स्ट्रिंग है जिसमें संतुलित ब्रैकेट हैं, जैसे [{][<(]})>(())
। एक कदम 45 डिग्री दक्षिणावर्त घूमने के लिए है। (गणितज्ञ में, यह लगभग साथ हो सकता है Rotate[ur_string,-pi/4]
)। यहाँ पहले चरण का परिणाम है:
[
{
]
[
<
(
]
}
)
>
(
(
)
)
अगले प्रत्येक वर्ण के बीच एक विकर्ण स्थान जोड़ें।
[
{
]
[
<
(
]
}
)
>
(
(
)
)
अगला, बाएं-सबसे ब्रैकेट से शुरू करें और अपराध में उसके और उसके साथी के बीच एक वर्ग बनाएं।
+---+
| |
| { |
| |
+---+
[
<
(
]
}
)
>
(
(
)
)
+
यदि आवश्यक हो, तो एस के साथ पिछले वर्णों को अधिलेखित करने वाले कोष्ठक के प्रत्येक जोड़े के साथ इस प्रक्रिया को दोहराएं ।
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| [ |
| |
| < |
| |
| ( |
| |
| ] |
| |
+-----------+
)
>
(
(
)
)
तब तक जारी रखें जब तक आपने सब कुछ अच्छा और चौकोर नहीं कर दिया।
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| +-----+ |
| | | |
| | +---+-+---+
| | | | | |
| | | +-+-+-+ |
| | | | | | | |
| +-+-+-+ | | |
| | | | | |
+-----+-+---+ | |
| | | |
| +-----+ |
| |
+---------+
+-----+
| |
| +-+ |
| | | |
| +-+ |
| |
+-----+
इनपुट
इनपुट संतुलित कोष्ठक की एक पंक्ति और कोई अन्य वर्ण नहीं होगा, जिसमें प्रत्येक कोष्ठक एक होगा []{}()<>
। प्रत्येक प्रकार के ब्रैकेट को व्यक्तिगत रूप से संतुलित किया जाता है, हालांकि विभिन्न प्रकार ओवरलैप हो सकते हैं (यह वही है जो वर्गों को दिलचस्प दिखता है)। एक अनुगामी न्यूलाइन वैकल्पिक है।
उत्पादन
आउटपुट ब्रैकेट स्ट्रिंग से उत्पन्न इंटरलॉकिंग स्क्वायर पैटर्न होगा। अनुगामी स्थान और अनुगामी न्यूलाइन वैकल्पिक हैं, लेकिन प्रमुख व्हाट्सएप नहीं होना चाहिए।
लक्ष्य
यह कोड-गोल्फ, सबसे कम बाइट्स जीतता है।
[[]]
क्या हम दो वर्गों को ओवरलैप कर सकते हैं या क्या हमें एक वर्ग को दूसरे के अंदर उत्पादन करना होगा?