Problem
Move a robot using L (turn left 90 degrees), R (turn right 90 degrees), and A (advance one step). Turning does not move it. Positive x points east and positive y points north. Directions are encoded as 0 = north, 1 = east, 2 = south, 3 = west. There are no obstacles or boundaries.
Implement robot_command_simulator(x, y, direction, commands).
Input
x: Initial horizontal coordinate.
y: Initial vertical coordinate.
direction: Initial direction: 0 north, 1 east, 2 south, 3 west.
commands: Commands to process from left to right.
Output
Return [final_x, final_y, final_direction], using the same direction encoding.
Constraints
−1,000,000,000 ≤ initial x, y ≤ 1,000,000,000. Direction is 0…3. There are 0…100,000 commands, each uppercase L, R, or A.
Examples
Input:
x = 0
y = 0
commands = "RAALA"
direction = 0
Expected output:
expected = [2, 1, 0]
Input:
long long x = 0;
long long y = 0;
std::string commands = "RAALA";
long long direction = 0;
Expected output:
std::vector<long long> expected = {2, 1, 0};
Input:
long x = 0;
long y = 0;
string commands = "RAALA";
long direction = 0;
Expected output:
long[] expected = new long[] {2, 1, 0};
Explanation
Turn east, advance twice to (2, 0), turn north, then advance to (2, 1). Direction 0 means north.
Input:
x = 3
y = -2
commands = "LLLL"
direction = 1
Expected output:
expected = [3, -2, 1]
Input:
long long x = 3;
long long y = -2;
std::string commands = "LLLL";
long long direction = 1;
Expected output:
std::vector<long long> expected = {3, -2, 1};
Input:
long x = 3;
long y = -2;
string commands = "LLLL";
long direction = 1;
Expected output:
long[] expected = new long[] {3, -2, 1};
Explanation
Four left turns restore the original east-facing direction (1). Turning never changes the coordinates.
How to approach it
Try on your own first, then open one hint at a time.
Hint 1
Track position and direction separately; turns change orientation without moving the robot.
Hint 2
Advance uses the current direction to update one coordinate by one step.
Hint 3
Remember the direction wraps around after turning left from north or right from west.
Expected complexity
O(n) time, O(1) extra space
References
This challenge is adapted for CodeUtility. Follow the statement and constraints above.