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
简单题一个。
public boolean judgeCircle(String moves) {
//L放在int[0],R放在int[1]
//U放在int[2],D放在int[3]
int[] directions=new int[4];
for(int i=0;i<moves.length();i++){
char c=moves.charAt(i);
switch (c) {
case 'L':
directions[0]++;
break;
case 'R':
directions[1]++;
break;
case 'U':
directions[2]++;
break;
case 'D':
directions[3]++;
break;
}
}
if(directions[0]==directions[1]&&directions[2]==directions[3]){
return true;
}
return false;
}
大神思路跟我一样,用了更加 clean 的 code。
public class Solution {
public boolean judgeCircle(String moves) {
int x = 0;
int y = 0;
for (char ch : moves.toCharArray()) {
if (ch == 'U') y++;
if (ch == 'D') y--;
if (ch == 'R') x++;
if (ch == 'L') x--;
}
return x == 0 && y == 0;
}
}