Robot Return to Origin
💻 coding

Robot Return to Origin

1 min read 278 words
1 min read
ShareWhatsAppPost on X
  • 1The robot starts at the origin (0, 0) and moves based on a given sequence of commands.
  • 2Valid moves include R (right), L (left), U (up), and D (down), affecting the robot's position on a 2D plane.
  • 3The robot returns to the origin if the net movement in both x and y directions is zero after executing all moves.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The robot starts at the origin (0, 0) and moves based on a given sequence of commands."

Robot Return to Origin

There is a robot starting at position (0, 0), the origin, on a 2D plane. Given a sequence of its moves, judge if this robot ends up at (0, 0) after it completes its moves.

The move sequence is represented by a string, and the character moves[i] represents its ith move. Valid moves are R (right), L (left), U (up), and D (down). If the robot returns to the origin after it finishes all of its moves, return true. Otherwise, return false.

Note: The way that the robot is "facing" is irrelevant. "R" will always make the robot move to the right once, "L" will always make it move left, etc. Also, assume that the magnitude of the robot's movement is the same for each move.

Example 1:

Input: "UD"

Output: true 

Explanation: The robot moves up once, and then down once. All moves have the same magnitude, so it ended up at the origin where it started. Therefore, we return true.

Example 2:

Input: "LL"

Output: false

Explanation: The robot moves left twice. It ends up two "moves" to the left of the origin. We return false because it is not at the origin at the end of its moves.

Solution:

using System;
using System.Collections.Generic;
using System.Text;

namespace LeetCode.AskGif.Easy.String
{
 public class JudgeCircleSoln
 {
 public bool JudgeCircle(string moves)
 {
 int x = 0;
 int y = 0;
 for (int i = 0; i < moves.Length; i++)
 {
 switch (moves[i])
 {
 case 'U':
 y++;
 break;
 case 'D':
 y--;
 break;
 case 'L':
 x--;
 break;
 case 'R':
 x++;
 break;
 default: break;
 }
 }

 return x == 0 && y == 0;
 }
 }
}

Time Complexity: O(n)

Space Complexity: O(1)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

AskGif

Published on 11 May 2020 · 1 min read · 278 words

Part of AskGif Blog · coding

You might also like