# Robot Bounded In Circle Python Solution Leetcode June 26, 2022

Competitive programming is essential and today we are going to solve the round bounded in circle leetcode problem. This problem appeared in amazon coding interview.

The question states that:-

On an infinite plane, a robot initially stands at `(0, 0)` and faces north. Note that:

• The north direction is the positive direction of the y-axis.
• The south direction is the negative direction of the y-axis.
• The east direction is the positive direction of the x-axis.
• The west direction is the negative direction of the x-axis.

The robot can receive one of three instructions:

• `"G"`: go straight 1 unit.
• `"L"`: turn 90 degrees to the left (i.e., anti-clockwise direction).
• `"R"`: turn 90 degrees to the right (i.e., clockwise direction).

The robot performs the `instructions` given in order, and repeats them forever.

Return `true` if and only if there exists a circle in the plane such that the robot never leaves the circle.

Solution:

Initially, we are facing north so we first loop through the string given. For each character, if we get G, then go straight 1 unit if L then calculates the direction by turning 90 degrees to the left, R then calculates the direction by turning 9 degrees to the right.

Last we return true if we are on 0,0 or the direction is not equal to n.

So why n because we are on n initially so if we repeat this process again and again then we will end up in the north direction so the circle is not formed.

Here is my python code :

``````class Solution:
def isRobotBounded(self, instructions: str) -> bool:
#for calculation movement
def move(s,direction):
if direction=="N":
s+=1
elif direction=="E":
s+=1
elif direction=="W":
s-=1
else:
s-=1
#for calculation direction when turn left
def get_directionl(curr_dir):
if curr_dir=="N":
return "W"
elif curr_dir=="E":
return "N"
elif curr_dir=="W":
return "S"
else:
return "E"
#for calculation direction when turn right
def get_directionr(curr_dir):
if curr_dir=="N":
return "E"
elif curr_dir=="E":
return "S"
elif curr_dir=="W":
return "N"
else:
return "W"

s = [0,0]
d  = "N"
for i in instructions:
if i=="G":
move(s,d)

elif i=="L":
d = get_directionl(d)

else:
d = get_directionr(d)
#return if s==[0,0]
return (s==0 and s==0) or d!="N"``````