【题目】
给出机器人的移动顺序,判断在完成移动后是否回到原点。
移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。
示例 :
输入: "UD"
输出: true
解释:向上移动、向下移动各一次,返回 true。
示例 :
输入: "LL"
输出: false
解释:机器人向左移动两次,返回 false。
【思路】
本题较为简单,即判断字符'U'和'D'个数是否相同以及字符'R'和'L'个数是否相同。
当然,也可以设置两个变量x和y,遍历字符串,遇到'U',y++;遇到'D',y--;遇到'R',x++;遇到'L',x--。
【代码】
python版本
class Solution(object):
def judgeCircle(self, moves):
"""
:type moves: str
:rtype: bool
"""
x =
y =
for m in moves:
if m == 'U':
y +=
elif m == 'D':
y -=
elif m == 'R':
x +=
else:
x -=
return x == and y ==
C++版本
class Solution {
public:
bool judgeCircle(string moves) {
int x = , y = ;
char m;
for(int i=; i < moves.size(); i++){
m = moves[i];
switch(m){
case 'U':
y++;
break;
case 'D':
y--;
break;
case 'R':
x++;
break;
case 'L':
x--;
break;
}
}
return x == && y == ;
}
};