अल्टरनेटिंग , एक स्ट्रिंग लेने की क्रिया है और इसे वैकल्पिक ब्रैकेट में घोंसला बनाना है। यहां बताया गया है कि कैसे आप एक स्ट्रिंग को वैकल्पिक रूप से देखते हैं ।
लंबाई N की एक स्ट्रिंग के लिए, केंद्र N वर्ण लें, और उन्हें कोष्ठक में घेरें। तो अगर हमारा तार
Hello world!
(12 अक्षर) था, तो हम समाप्त कर देंगे(Hello world!)
फिर, शेष केंद्र
n-2
वर्ण लें, और उन्हें चौकोर कोष्ठक में घेरें। इस मामले में, केंद्र 10 वर्ण हैंello world
, इसलिए अगला पुनरावृत्ति है:(H[ello world]!)
जब तक स्ट्रिंग के बीच में दो से अधिक वर्ण शेष हैं, तब तक अंतिम दो चरणों को दोहराएं,
()
और के बीच बारी-बारी से[]
। यहाँ अंतिम चरण हैं:(Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!)
चूँकि अंतिम पुनरावृत्ति पर बीच में केवल दो अक्षर बचे हैं, इसलिए हम रुक जाते हैं। हमारा अंतिम तार है
(H[e(l[l(o[ w]o)r]l)d]!)
ध्यान दें कि मध्य कोष्ठक में दो वर्ण कैसे हैं। यह तब होता है जब इनपुट एक समान लंबाई है। यदि इनपुट एक विषम लंबाई थी (उदाहरण के लिए,
Hello, world!
अल्पविराम में जोड़ा गया), तो हमारे बीच में केवल एक ही वर्ण होगा:(H[e(l[l(o[,( )w]o)r]l)d]!)
आज की चुनौती के लिए, आपको एक प्रोग्राम या फ़ंक्शन लिखना होगा जो एक स्ट्रिंग को इनपुट के रूप में लेता है, और इसे वैकल्पिक करता है, नई स्ट्रिंग को आउटपुट करता है। आप अपनी पसंद के किसी भी उचित प्रारूप में इनपुट और आउटपुट ले सकते हैं। इनपुट हमेशा कम से कम एक वर्ण लंबा होगा, और इसमें केवल मुद्रण योग्य ASCII होगा। आप यह भी मान सकते हैं कि इनपुट होगा नहीं किसी भी कोष्ठक या वर्ग कोष्ठक होते हैं। पारंपरिक भाषाओं के लिए, यह बहुत अधिक मायने नहीं रखता है, लेकिन यह कुछ गूढ़ भाषाओं के लिए इसे आसान बना सकता है।
हमेशा की तरह, यह एक कोड-गोल्फ प्रतियोगिता है, इसलिए अपनी पसंद की भाषा में सबसे कम संभव उत्तर देने का प्रयास करें। मज़े करो!
परीक्षण IO
#Input #Output
"Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!)
"PPCG" --> (P[PC]G)
"Code-golf" --> (C[o(d[e(-)g]o)l]f)
"4 8 15 16 23 42" --> (4[ (8[ (1[5( [1]6) ]2)3] )4]2)
"a" --> (a)
"ab" --> (ab)
"abc" --> (a[b]c)
()
) से शुरू करना चाहिए या क्या हम कोष्ठक ( []
) से शुरू कर सकते हैं ?
()
HelloWorld
:।