Robot Room Cleaner
class Solution(object):
visited = set()
vector = [(-1, 0), (0, 1), (1, 0), (0, -1)]
def dfs(self, x, y, dir, robot):
robot.clean()
self.visited.add((x, y))
for i in range(4):
idx = (dir+i) % 4
tempX = x + self.vector[idx][0]
tempY = y + self.vector[idx][1]
if not (tempX, tempY) in self.visited and robot.move() == True:
self.dfs(tempX, tempY, idx, robot)
self.move_back(robot)
robot.turnRight()
def move_back(self, robot):
robot.turnLeft()
robot.turnLeft()
robot.move()
robot.turnLeft()
robot.turnLeft()
def cleanRoom(self, robot):
self.visited = set()
self.dfs(0, 0, 0, robot)```
Last updated