Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra robot có thể đến được vị trí mục tiêu hay không bằng Python

Giả sử chúng ta có một rô bốt, hiện đang ngồi ở vị trí (0, 0) (Mặt phẳng Descartes). Nếu chúng ta có danh sách các bước di chuyển mà nó có thể thực hiện, bao gồm N (Bắc), S (Nam), W (Tây) và E (Đông). Chúng tôi phải kiểm tra xem nó có thể đến được ở tọa độ đích (x, y) hay không.

Vì vậy, nếu đầu vào giống như move =['N', 'N', 'E', 'E', 'S'], (x, y) =(2,1), thì đầu ra sẽ là True,

Chương trình kiểm tra robot có thể đến được vị trí mục tiêu hay không bằng Python

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • temp_coord:=[0,0]
  • đối với mỗi bước di chuyển, hãy thực hiện
    • nếu chuyển động giống như "N", thì
      • temp_coord [1]:=temp_coord [1] + 1
    • nếu không, khi di chuyển giống như "S", thì
      • temp_coord [1]:=temp_coord [1] - 1
    • nếu không khi di chuyển giống như "E", thì
      • temp_coord [0]:=temp_coord [0] + 1
    • nếu không khi di chuyển giống như "W", thì
      • temp_coord [0]:=temp_coord [0] - 1
  • trả về True khi temp_coord [0] giống với coord [0] và temp_coord [1] giống ascoord [1] nếu không thì false.

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

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

Đầu ra

True