## 题目描述

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``````

## 解法一

### Python

``````class Solution:
def judgeCircle(self, moves):
"""
:type moves: str
:rtype: bool
"""
return len(moves) % 2 == 0 and moves.count('U') == moves.count('D') and moves.count('L') == moves.count('R')``````

### Java

``````class Solution {
public boolean judgeCircle(String moves) {
if (moves.length() % 2 != 0) {
return false;
}
int countV = 0;
int countH = 0;
for (char letter : moves.toCharArray()) {
switch (letter) {
case 'U':
countV++;
break;
case 'D':
countV--;
break;
case 'L':
countH++;
break;
case 'R':
countH--;
break;
}
}
return countV == 0 && countH == 0;
}
}``````

### C++

``````class Solution {
public:
bool judgeCircle(string moves) {
if (moves.length() % 2 != 0) {
return false;
}
int countV = 0;
int countH = 0;
for (auto letter : moves) {
switch (letter) {
case 'U':
countV++;
break;
case 'D':
countV--;
break;
case 'L':
countH++;
break;
case 'R':
countH--;
break;
}
}
return countV == 0 && countH == 0;
}
};``````