diff --git a/leetcode/657.py b/leetcode/657.py new file mode 100644 index 0000000..383e520 --- /dev/null +++ b/leetcode/657.py @@ -0,0 +1,45 @@ +# There is a robot starting at the 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. + +# You are given a string moves that represents +# the move sequence of the robot where moves[i] +# represents its ith move. Valid moves are 'R' (right), +# 'L' (left), 'U' (up), and 'D' (down). + +# Return true if the robot returns to the origin after it finishes all of its moves, +# or false otherwise. + +# 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. + + +# Constraints: + +# 1 <= moves.length <= 2 * 10^4 +# moves only contains the characters 'U', 'D', 'L' and 'R'. + + +class Solution: + def judgeCircle1(self, moves: str) -> bool: + horizontal = 0 + vertical = 0 + for move in moves: + if move == "U": + vertical += 1 + if move == "D": + vertical -= 1 + if move == "L": + horizontal -= 1 + if move == "R": + horizontal += 1 + return horizontal == 0 and vertical == 0 + + def judgeCircle(self, moves: str) -> bool: + if moves.count("U")!=moves.count("D"): + return False + if moves.count("L")!=moves.count("R"): + return False + return True