कार्य
नॉन-खाली रेगुलर एक्सप्रेशन के रूप में एक सिंपल रेगेक्स को परिभाषित करें जिसमें केवल शामिल हो
- वर्ण
0
और1
, - कोष्ठक समूहीकरण
(
और)
, - एक या अधिक पुनरावृत्ति परिमाणक
+
।
0
एस और 1
एस के एक गैर-खाली स्ट्रिंग को देखते हुए , आपके प्रोग्राम को पूर्ण इनपुट स्ट्रिंग से मेल खाते हुए सबसे छोटा सरल रेगेक्स मिलना चाहिए । (यही है, जब एक साधारण regex मिलान, नाटक यह द्वारा bookended है ^
और $
।) कई कम से कम regexes देखते हैं, तो किसी भी या उन सभी को मुद्रित करें।)
कोड-गोल्फ , इसलिए सबसे छोटा सबमिशन (बाइट्स में) जीतता है।
परीक्षण के मामलों
1 -> 1
00 -> 00 or 0+
010 -> 010
1110 -> 1+0
01010 -> 01010
0101010 -> 0(10)+ or (01)+0
011111 -> 01+
10110110 -> (1+0)+
01100110 -> (0110)+ or (01+0)+
010010010 -> (010)+
111100111 -> 1+001+ or 1+0+1+
00000101010 -> 0+(10)+ or (0+1)+0
1010110001 -> 1(0+1+)+ or (1+0+)+1
01100110
एक दिलचस्प मामला है ... एक भोली एल्गोरिथ्म लिखना होगा 01+0+1+0
या (0+1+)+0
जो इष्टतम नहीं हैं।