# Judge Route Circle

<https://leetcode.com/problems/judge-route-circle/description/>

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

## Thoughts

回到原点意味着走的路都抵消了, U和D, L和R互逆, 也就是size(U) == size(D)以及size(L) == size(R).

## Code

```
class Solution {
    public boolean judgeCircle(String moves) {
        int up = 0, left = 0;
        for (int i = 0; i < moves.length(); i++) {
            char c = moves.charAt(i);
            switch (c) {
                case 'U':
                    up++;
                    break;
                case 'D':
                    up--;
                    break;
                case 'L':
                    left++;
                    break;
                default:
                    left--;
            }
        }

        return up == 0 && left == 0;
    }
}
```

## Analysis

时间复杂度O(N), 空间O(1)
