งานของคุณ - หากคุณเลือกที่จะยอมรับมัน - คือการสร้างโปรแกรมที่แยกวิเคราะห์และประเมินสตริง (จากซ้ายไปขวาและความยาวตามอำเภอใจ) ของโทเค็นที่ให้ทิศทาง - ซ้ายหรือขวา ต่อไปนี้เป็นโทเค็นที่เป็นไปได้ทั้งสี่และความหมาย:
> 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
สิ่งนี้ถูกต้องและจากการออกแบบ?