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