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)
Last updated
Was this helpful?