Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place.
The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R
(Right), L
(Left), U
(Up) and D
(down). The output should be true or false representing whether the robot makes a circle.
Example 1:
Input: "UD" Output: true
Example 2:
Input: "LL" Output: false
思路:Robot从(0,0)通过上下左右移动,最终会回到初始位置(move:str)。
1.判断U-D, L-R是否成对出现,即上下或者左右移动次数相同;
2.横纵坐标移动问题,保证xy最后回到原点,即x=0,y=0;
# 判断U-D,L-R是否成对出现 class Solution(): def judgeCircle(self, moves): """ :type moves: str :rtype: bool """ return moves.count('L') == moves.count('R') and moves.count('U') == moves.count('D')
# 横纵坐标移动问题 class Solution(): def judgeCircle(self, moves): """ :type moves: str :rtype: bool """ x = 0 y = 0 for i in moves: if i == 'L': x -= 1 elif i == 'R': x += 1 elif i == 'U': y += 1 else: y -= 1 return x == 0 and y == 0