1.题目
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.
翻译: 机器人从原点(0,0)出发,有R (Right), L (Left), U (Up) and D (down)四种运动,给一个运动的字符串,求最后机器人是否回到原点。
Example 1:
Input: “UD”
Output: true
Example 2:
Input: “LL”
Output: false
2.分析
遍历一遍字符串,对R,L,U,D分别计数,R=L&&U=D则回到原点
3.代码
bool judgeCircle(string moves) {
int vertical = 0;
int horizontal = 0;
for (auto m : moves) {
switch (m) {
case 'L':
horizontal += 1;
break;
case 'R':
horizontal -= 1;
break;
case 'U':
vertical += 1;
break;
case 'D':
vertical -= 1;
break;
}
}
return vertical == 0 && horizontal == 0;
}