Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบหุ่นยนต์สามารถเข้าถึงตำแหน่งเป้าหมายได้หรือไม่ใน Python


สมมติว่าเรามีหุ่นยนต์ซึ่งกำลังนั่งอยู่ในตำแหน่ง (0, 0) (เครื่องบินคาร์ทีเซียน) หากเรามีรายชื่อการเคลื่อนไหวที่สามารถทำได้ ประกอบด้วย N(เหนือ), S(ใต้), W(ตะวันตก) และ E(ตะวันออก) เราต้องตรวจสอบว่าสามารถไปถึงพิกัดปลายทางได้หรือไม่ (x, y)

ดังนั้น ถ้าอินพุตเหมือนย้าย =['N','N','E','E','S'], (x,y) =(2,1) ผลลัพธ์จะเป็น True

โปรแกรมตรวจสอบหุ่นยนต์สามารถเข้าถึงตำแหน่งเป้าหมายได้หรือไม่ใน Python

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • temp_coord :=[0,0]
  • สำหรับการเคลื่อนไหวแต่ละครั้ง ทำ
    • ถ้าการเคลื่อนไหวเหมือนกับ "N" แล้ว
      • temp_coord[1] :=temp_coord[1] + 1
    • มิฉะนั้นเมื่อการเคลื่อนไหวเหมือนกับ "S" แล้ว
      • temp_coord[1] :=temp_coord[1] - 1
    • มิฉะนั้นเมื่อการเคลื่อนไหวเหมือนกับ "E" แล้ว
      • temp_coord[0] :=temp_coord[0] + 1
    • มิฉะนั้นเมื่อการเคลื่อนไหวเหมือนกับ "W" แล้ว
      • temp_coord[0] :=temp_coord[0] - 1
  • คืนค่า True เมื่อ temp_coord[0] เหมือนกับ coord[0] และ temp_coord[1] เหมือนกับ ascoord[1] มิฉะนั้นจะเป็นเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, moves, coord):
      temp_coord = [0,0]
      for move in moves:
         if move == "N":
            temp_coord[1] += 1
         elif move == "S":
            temp_coord[1] -= 1
         elif move == "E":
            temp_coord[0] += 1
         elif move == "W":
            temp_coord[0] -= 1
      return temp_coord[0] == coord[0] and temp_coord[1] == coord[1]
ob = Solution()
moves = ['N','N','E','E','S']
coord = [2,1]
print(ob.solve(moves, coord))

อินพุต

['N','N','E','E','S'], [2,1]

ผลลัพธ์

True