इस चुनौती में, आपको सूचियों की सूची को सरल सूची प्रारूप में पार्स करना चाहिए।
यह चुनौती मेरे सैडफ्लक पार्सर पर आधारित है। मेरे साडफ्लक पार्सर में, यह सभी () को हटा दिया गया है, सूची की शुरुआत में () के योग के साथ, कार्यक्रम को तेज़ी से चलाने के लिए।
सैड-लिस्ट में पार्स करने के लिए, आपको यह करना होगा (पायथन इम्प्लीमेंटेशन चीज़, ट्यूल ऑफ़ टपल का उपयोग करता है):
def sadlistfunc(list):
new-sadlist = [0]
for i in list:
if i == ():
new-sadlist[0]+=1
else:
new-sadlist.append(sadlistfunc(i))
यह एक पुनरावर्ती कार्य है। किसी सूची के लिए, सूची इनपुट से () की संख्या से शुरू होकर, एक नई सूची शुरू करें, फिर इस सूची के बाकी क्रम में सूची सूची से एक () नहीं था, जो प्रत्येक सूची का दु: खद सूची संस्करण है। सूची वापस करें।
इनपुट:
आप कुछ अलग स्वरूपों में इनपुट ले सकते हैं:
- आप इसे एक सूची के रूप में ले सकते हैं
- आप इसे टुप के रूप में ले सकते हैं
- आप इसे एक स्ट्रिंग के रूप में ले सकते हैं
यदि आप इसे एक स्ट्रिंग के रूप में लेते हैं, तो आपको कुछ सेट कोष्ठक का उपयोग करना चाहिए, जैसा कि मस्तिष्क-परत में दिखाई देता है। आप वर्ण 1 और 2 का उपयोग नहीं कर सकते हैं
बस उचित हो
इनपुट हमेशा एक सूची के अंदर होगा, लेकिन आपका कार्यक्रम इनपुट के बाहर एक अंतर्निहित सूची परत मान सकता है, अर्थात () () (= = () () (), या यह नहीं चुन सकता है। उदाहरण स्पष्ट बाहरी सूची के साथ होंगे
उत्पादन:
सूची या ट्यूल या स्ट्रिंग, या जो कुछ भी हो सकता है। जैसा कि मेटा सर्वसम्मति है आप उचित आउटपुट प्रारूप का उपयोग कर सकते हैं।
उदाहरण:
(()()()) = [3]
(((()))) = [0,[0,[1]]]
((())()(())) = [1, [1], [1]]
() = invalid input, if the outside bracket is explicit.
((((())())())(())()) = [1, [1, [1, [1]]], [1]]
ध्यान दें कि इनपुट सख्त नहीं है। ये इनपुट हो सकते हैं:
[[],[],[]]
[[[[]]]]
[[[]],[],[[]]]
[]
[[[[[]],[]],[]],[[]],[]]
या कुछ अन्य उचित प्रारूप
समझाया गया टेस्ट केस:
(()()((())())())
इसे "दुखद" करने के लिए, पहले हम () की संख्या गिनते हैं
()() ()
( ((())()) )
3. फिर हम इन्हें हटाते हैं, और शुरुआत में एक 3 जोड़ते हैं
(3,((())()))
इस सूची में एक सूची है। हम इसे दु: ख देते हैं
((())())
कितने ()?
()
((()) )
1. हम शुरू में 1 निकालते हैं और जोड़ते हैं
(1,(()))
इसमें इसकी एक सूची है
(())
गिनती
()
( )
निकालें और गिनती जोड़ें
(1)
फिर हमने इसे वापस इसकी सूची में डाल दिया
(1,(1))
फिर हमने इसे वापस इसकी सूची में डाल दिया
(3,(1,(1)))
किया हुआ
यह कोड-गोल्फ है , इसलिए कम बेहतर है
((((())())())(())()) = [1, [1, [1, [1]], [1]]
होना चाहिए ((((())())())(())()) = [1, [1, [1, [1]]], [1]]
।