यह चुनौती दोहराव के बारे में दो-चुनौती श्रृंखला में पहली है। दूसरा जल्द उठ जाएगा।
पुनरावृत्ति नामक एक भाषा में (जिसे मैंने अभी-अभी बनाया है), इसमें हमेशा के लिए दोहराने के 12345678901234567890...साथ एक अनंत स्ट्रिंग होती 1234567890है।
निम्नलिखित सिंटैक्स आउटपुट नंबरों के लिए उपलब्ध है:
+-*/: यह ऑपरेटर को दोहराए जाने वाले अंकों की स्ट्रिंग में सम्मिलित करता है।- उदाहरण:
+->1+2=3(+एक आवेषण+के बीच1और2)+*->1+2*3=1+6=7(जैसा कि ऊपर कहा गया है, दो ऑपरेटरों को छोड़कर अब उपयोग किया जाता है)/->1/2=0(पुनरावृत्ति पूर्णांक विभाजन का उपयोग करता है)//->1/2/3=0/3=0(पुनरावृत्ति कई घटाव और विभाजन के साथ "बाएं संघ" का उपयोग करता है)
- प्रत्येक ऑपरेटर को डाला जाता है ताकि उसके बाईं ओर एक अंक हो, जब तक कि
c(नीचे देखें) न हों।
- उदाहरण:
c: स्ट्रिंग में अगले अंक के साथ संबंधित है।- उदाहरण:
c+->12+3=15(c"जारी है"1और इसे अगले अंक के साथ समेटता है2, बनाने के लिए12)+c->1+23=24ccc->1234
- उदाहरण:
(): प्रसंस्करण संख्या के लिए ब्रैकेट।- उदाहरण:
(c+)*->(12+3)*4=15*4=60(दोहराव संचालन के क्रम का उपयोग करता है)(c+)/c->(12+3)/45=15/45=0(cc+c)/->(123+45)/6=168/6=28
- उदाहरण:
s: एक संख्या छोड़ें (अनंत स्ट्रिंग से संख्या हटाता है)।s+->2+3=5(sस्किप्प1)csc->124(प्रथमcconcats1और2,sछोड़ने3, और अंतिमcconcats12लिए4)+s+->7(प्रथम+कहते हैं1और2बनाने के लिए3,sछोड़ने3, और अंतिम+कहते हैं3करने के लिए4बनाने के लिए7)cs*(++)->12*(4+5+6)=12*15=180
ऊपर के उदाहरणों में, अनंत स्ट्रिंग में केवल परिमित मात्राओं का उपयोग किया जाता है। उपयोग किए गए अंकों की संख्या के बराबर है number of operators, concats and skips + 1।
आपका कार्य, जब पुनरावृत्ति कोड की एक स्ट्रिंग दी जाती है, तो परिणाम को आउटपुट करता है।
इनपुट और आउटपुट के उदाहरण हैं:
++ -> 6
- -> -1
(-)* -> -3
cscc -> 1245
(cc+c)/ -> 28
cc+c/ -> 130
cs*(++) -> 180
यह कोड गोल्फ है, इसलिए बाइट्स जीत में सबसे छोटा कोड है!
चश्मा:
- आपको गारंटी दी जाती है कि परिणाम कभी ऊपर नहीं जाएगा
2^31-1। - आपको यह भी गारंटी है कि इनपुट केवल प्रतीकों से मिलकर बनेगा
+-*/cs()। - एक खाली प्रोग्राम आउटपुट देगा
1।
s+है 2+3कि इसका पहला उदाहरण है। और अभी भी sमुझे गुस्सा दिलाता रहता है। मुझे आश्चर्य है कि कैसे +s()+फैलता है। अगर ऐसा है 1+(2)+4तो (पहले भी आता है, 2लेकिन sइससे पहले भी लगता है कि (अभी भी रुकता है 3, नहीं 2। यदि परिणाम 1+(3)+4फिर भी होता है, तो उसके बाद आने वाले परिणाम sपर निर्भर करता है (तुलना के साथ +s+)
scहै 23और s+है 1+3? करता है sको छोड़ 1अब या 2? सभी उदाहरण ऑपरेंड पर पहले ऑपरेशन का उपयोग करते हैं 1और 2... ऐसा scहोना चाहिए 13।
~एस के बारे में क्या ? हमें फांसी मत छोड़ो।