यह चुनौती दोहराव के बारे में दो-चुनौती श्रृंखला में पहली है। दूसरा जल्द उठ जाएगा।
पुनरावृत्ति नामक एक भाषा में (जिसे मैंने अभी-अभी बनाया है), इसमें हमेशा के लिए दोहराने के 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
=24
ccc
->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
(प्रथमc
concats1
और2
,s
छोड़ने3
, और अंतिमc
concats12
लिए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
।
~
एस के बारे में क्या ? हमें फांसी मत छोड़ो।