आपकी चुनौती कार्यक्रम के इनपुट में कुछ कोष्ठक का विस्तार करना है जैसा कि दिखाया गया है:
- समापन ब्रैकेट के बाद एक एकल अंक n के साथ दो मिलान ब्रैकेट और , के बीच एक स्ट्रिंग एस का पता लगाएं ।
[
]
- कोष्ठक निकालें।
- बदलें रों खुद के साथ दोहराया n बार। (यदि एन 0 है, तो बस एस हटा दें ।)
- चरण 1 पर जाएं जब तक कि इनपुट में अधिक मिलान वाले ब्रैकेट न हों।
अतिरिक्त नियम और स्पष्टीकरण:
- आप इनपुट लेंगे और किसी भी अनुमत साधनों के माध्यम से आउटपुट देंगे।
- आउटपुट में अनुगामी न्यूलाइन की अनुमति है।
- आपको केवल इनपुट में मुद्रण योग्य ASCII को संभालने की आवश्यकता है।
- आप मान सकते हैं कि सभी कोष्ठक मेल खाते हैं, अर्थात आपको कभी भी इनपुट प्राप्त नहीं होगा
[]]]]
या[[[[]
। - आप मान सकते हैं कि प्रत्येक समापन ब्रैकेट
]
में इसके बाद एक अंक होता है।
परीक्षण के मामलों:
Input -> Output
[Foo[Bar]3]2 -> FooBarBarBarFooBarBarBar
[one]1[two]2[three]3 -> onetwotwothreethreethree
[three[two[one]1]2]3 -> threetwoonetwoonethreetwoonetwoonethreetwoonetwoone
[!@#[$%^[&*(]2]2]2 -> !@#$%^&*(&*($%^&*(&*(!@#$%^&*(&*($%^&*(&*(
[[foo bar baz]1]1 -> foo bar baz
[only once]12 -> only once2
[only twice]23456789 -> only twiceonly twice3456789
[remove me!]0 ->
before [in ]2after -> before in in after
जैसा कि यह कोड-गोल्फ है , प्रत्येक भाषा में सबसे कम उत्तर जीतता है। सौभाग्य!
s
कभी अन्य ब्रैकेट नहीं होने चाहिए? उदाहरण के लिए, [Foo[Bar]3]2
स्ट्रिंग को Foo[Bar
3 बार विस्तारित करके हल करने का प्रयास करने से अमान्य राज्य हो जाएगाFoo[BarFoo[BarFoo[Bar]2
[a[b]2c[d]2e]2
? आप abbcddeabbcdde
विस्तार कर रहे हैं b
और d
पहले, लेकिन ababcdbcdedbabcdbcdede
विस्तार a[b
और d]2e
पहले से।