-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy path1041-robot-bounded-in-circle.js
More file actions
34 lines (31 loc) · 973 Bytes
/
1041-robot-bounded-in-circle.js
File metadata and controls
34 lines (31 loc) · 973 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* 1041. Robot Bounded In Circle
* https://leetcode.com/problems/robot-bounded-in-circle/
* Difficulty: Medium
*
* On an infinite plane, a robot initially stands at (0, 0) and faces north.
* The robot can receive one of three instructions:
* - "G": go straight 1 unit;
* - "L": turn 90 degrees to the left;
* - "R": turn 90 degrees to the right.
*
* 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.
*/
/**
* @param {string} instructions
* @return {boolean}
*/
var isRobotBounded = function(instructions) {
let x = 0, y = 0;
let dx = 0, dy = 1;
for (const direction of instructions) {
switch (direction) {
case 'R': [dx, dy] = [dy, -dx]; break;
case 'L': [dy, dx] = [dx, -dy]; break;
case 'G': [x, y] = [x + dx, y + dy]; break;
}
}
return (x === 0 && y === 0) || dy !== 1;
}