आपका कार्य - क्या आपको इसे स्वीकार करना चाहिए - एक ऐसा कार्यक्रम बनाना है जो टोकनों का निर्देशन करता है और एक स्ट्रिंग का मूल्यांकन करता है (टोकन के बाएं से दाएं और मनमाने ढंग से लंबाई) जो दिशा-निर्देश देते हैं - या तो बाएं या दाएं। यहां चार संभावित टोकन और उनके अर्थ दिए गए हैं:
> go right one single step
< go left one single step
-> go right the total amount of single steps that you've gone right, plus one,
before you previously encountered this token and reset this counter to zero
<- go left the total amount of single steps that you've gone left, plus one,
before you previously encountered this token and reset this counter to zero
हालांकि एक पकड़ है - आपके कार्यक्रम को दिशा-निर्देश देने में सक्षम होने वाले टोकन इस रूप में प्रस्तुत किए जाएंगे:
<<->-><<->->>->>->
... दूसरे शब्दों में, उन्हें संक्षिप्त किया गया है, और यह आपके कार्यक्रम का कार्य है कि दिशाओं की सही पूर्वता और चरणों की मात्रा का पता लगाना (आगे देखते हुए)। वरीयता का क्रम निम्नानुसार है (उच्चतम से निम्नतम वरीयता तक):
->
<-
>
<
यदि आपका सामना <-
तब होता है जब बाईं ओर कोई कदम पहले या तो शुरू होने के बाद से या अंतिम रीसेट के बाद से नहीं किया गया था, तो बाईं ओर एक भी कदम उठाएं। उसी नियम पर लागू होता है ->
, लेकिन फिर दाईं ओर जाने के लिए।
आपका कार्यक्रम 0 से शुरू होना चाहिए और इसका परिणाम अंतिम अंत स्थिति का प्रतिनिधित्व करने वाला एक हस्ताक्षरित पूर्णांक होना चाहिए।
आप इनपुट को हमेशा मान्य होने की उम्मीद कर सकते हैं (इसलिए, <--->>--<
उदाहरण के लिए, ऐसा कुछ भी नहीं )।
उदाहरण इनपुट:
><->><-<-><-<>>->
इस उदाहरण के चरण:
step | token | amount | end position
------+-------+--------+--------------
1. | > | +1 | 1
2. | < | -1 | 0
3. | -> | +2 | 2
4. | > | +1 | 3
5. | <- | -2 | 1
6. | < | -1 | 0
7. | -> | +2 | 2
8. | <- | -2 | 0
9. | < | -1 | -1
10. | > | +1 | 0
11. | > | +1 | 1
12. | -> | +3 | 4
स्पष्टीकरण के लिए: कार्यक्रम का आउटपुट केवल हस्ताक्षरित पूर्णांक के रूप में अंतिम अंतिम स्थिति होना चाहिए। ऊपर दी गई तालिका मेरे उदाहरण के लिए उठाए गए चरणों का वर्णन करने के लिए है। इस तरह के एक टेबल, टेबल पंक्ति, या यहां तक कि चरणों के अंत पदों को आउटपुट करने की आवश्यकता नहीं है। हस्ताक्षरित पूर्णांक के रूप में केवल अंतिम अंतिम स्थिति की आवश्यकता होती है।
सबसे कम कोड, एक सप्ताह के बाद, जीतता है।
<-
, यदि इसके तुरंत बाद ए<
या ए->
। वहाँ इस भाषा में कोई रास्ता नहीं अनुक्रम का प्रतिनिधित्व करने के लिए<-
तो>
जो होगा -go left the total amount of single steps that you've gone left, plus one, then go right one single step
। क्या यह सही है और डिजाइन द्वारा?