Изначально в позиции (0, 0) находится робот. Учитывая последовательность его движений, оцените, делает ли этот робот круг, что означает, что он возвращается в исходное место.
Последовательность движений представлена строкой. И каждое движение представлено персонажем. Допустимые движения робота: R (вправо), L (влево), U (вверх) и D (вниз). Выходные данные должны быть истинными или ложными, отражающими, делает ли робот круг.
Пример 1:
Input: "UD" Output: true
Пример 2:
Input: "LL" Output: false
Решение:
很簡單的一題,只要比較位移差,就可以解出答案。
Дело 1:
class Solution {
public boolean judgeCircle(String moves) {
int U = 0;
int D = 0;
int L = 0;
int R = 0;
for(int i =0;i<moves.length();i++){
if(moves.charAt(i) == 'U'){
U++;
}
else if(moves.charAt(i) == 'D'){
D++;
}
else if(moves.charAt(i) == 'L'){
L++;
}
else{
R++;
}
}
return (U-D)==0 && (L-R)==0;
}
}
случай 2:
class Solution {
public boolean judgeCircle(String moves) {
int x = 0, y = 0;
for (char move: moves.toCharArray()) {
if (move == 'U') y--;
else if (move == 'D') y++;
else if (move == 'L') x--;
else if (move == 'R') x++;
}
return x == 0 && y == 0;
}
}