আপনার টাস্ক - আপনি এটি গ্রহণ করার সিদ্ধান্ত নেওয়া উচিত - এমন একটি প্রোগ্রাম তৈরি করা যা টোকেনের দিকনির্দেশ দেয় - কোনওটি বাম বা ডানকে একটি স্ট্রিং (বাম থেকে ডান এবং স্বেচ্ছা দৈর্ঘ্যের) পার্স এবং মূল্যায়ন করে। এখানে সম্ভাব্য চারটি টোকেন এবং এর অর্থ:
> 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
। এটি কি সঠিক এবং ডিজাইন দ্বারা?