Изначально в позиции (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; } }