There is a robot starting at 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.

The move sequence is represented by a string, and the character moves[i] represents its ith move. Valid moves are R (right), L (left), U (up), and D (down). If the robot returns to the origin after it finishes all of its moves, return true. Otherwise, return false.

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.

Example 1:

```Input: "UD"
Output: true
Explanation: The robot moves up once, and then down once. All moves have the same magnitude, so it ended up at the origin where it started. Therefore, we return true.```

Example 2:

```Input: "LL"
Output: false
Explanation: The robot moves left twice. It ends up two "moves" to the left of the origin. We return false because it is not at the origin at the end of its moves.```

• 向左移动的次数和向右移动的次数是否相等
• 向上移动的次数是否和向下移动的次数相等

`python` 代码：

```class Solution(object):
def judgeCircle(self, moves):
"""
:type moves: str
:rtype: bool
"""
moves_length = len(moves)
L_count = 0
R_count = 0
U_count = 0
D_count = 0
for i in range(moves_length):
if moves[i] == 'L':
L_count = L_count + 1
elif moves[i] == 'R':
R_count = R_count + 1
elif moves[i] == 'U':
U_count = U_count + 1
elif moves[i] == 'D':
D_count = D_count + 1

if L_count == R_count and U_count == D_count:
return True
else:
return False```

`C++` 代码：

```class Solution {
public:
bool judgeCircle(string moves) {
int moves_length = moves.length();
int L_count = 0;
int R_count = 0;
int U_count = 0;
int D_count = 0;
for(int i = 0; i < moves_length; i++){
if(moves[i] == 'L'){
L_count++;
}
else if(moves[i] == 'R'){
R_count++;
}
else if(moves[i] == 'U'){
U_count++;
}
else if(moves[i] == 'D'){
D_count++;
}
}
if(L_count == R_count && U_count == D_count){
return true;
}
return false;
}
};```

0 条评论

• ### Codeforces Round #345 (Div. 2)【A.模拟，B，暴力，C，STL，容斥原理】

A. Joysticks time limit per test：1 second memory limit per test：256 megabytes in...

• ### Codeforces 810C Do you want a date?(数学，前缀和)

C. Do you want a date? time limit per test：2 seconds memory limit per test：256 m...

• ### HDU 1013 Digital Roots【字符串，水】

Digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3276...

• ### 姿势指导可见部分匹配的被遮挡人ReID (CS.CV)

由于外观因各种障碍而变化很大，特别是在人群场景中，对人员进行重新识别是一项艰巨的任务。为了解决这个问题，我们提出了一种姿势指导的可见零件匹配（PVPM）方法，该...

• ### 【PAT乙级】锤子剪刀布

版权声明：本文为博主原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接和本声明。 ...

• ### MySQL查询---COUNT函数

上一篇谈到了我们日常开发中经常需要用到的分页，在业务数据量不多的情况下，我们直接用limit指定偏移量就可以满足我们业务需求了，但是数据量大的时候使用limit...

• ### count(1)、count(*) 与 count (列名) 的执行区别

当表的数据量大些时，对表作分析之后，使用count(1)还要比使用count(*)用时多了！

### 活动推荐 