题目
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
题意
判断从原点出发经过一系列操作,是否能回到原点。
题解
转换成坐标处理。
C++代码
class Solution {
public:
bool judgeCircle(string moves) {
/*(x,y)
R (x+1,y), L (x-1,y), U (x, y+1) and D (x, y-1).
*/
int x=0,y=0;
for(int i=0; i<moves.length(); i++)
{
if(moves[i] == 'R') x+=1;
if(moves[i] == 'L') x-=1;
if(moves[i] == 'U') y+=1;
if(moves[i] == 'D') y-=1;
}
return x==0&&y==0;
}
};
python代码
class Solution(object):
def judgeCircle(self, moves):
"""
:type moves: str
:rtype: bool
"""
x=0
y=0
for i in range(0, len(moves)):
if moves[i] == 'R':
x+=1
if moves[i] == 'L':
x-=1
if moves[i] == 'U':
y+=1
if moves[i] == 'D':
y-=1
return x==0 and y==0