Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Robot quay về gốc tọa độ trong C++


Mô tả bài toán

Robot bắt đầu tại (0,0). Cho chuỗi di chuyển: 'L' (trái), 'R' (phải), 'U' (lên), 'D' (xuống). Kiểm tra robot có quay về (0,0) sau chuỗi di chuyển không.

Ví dụ: "RRULLD" → Phải 2, Lên 1, Trái 2, Xuống 1 → Về (0,0) → True.

Giải pháp (Đếm hướng)

  • Đếm left - right (trục x) và up - down (trục y).
  • Nếu cả hai bằng 0 → true, ngược lại false.

Ví dụ minh họa

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    bool judgeCircle(string moves) {
        int lft = 0, up = 0;
        for (char c : moves) {
            if (c == 'L') lft++;
            else if (c == 'R') lft--;
            else if (c == 'U') up++;
            else if (c == 'D') up--;
        }
        return lft == 0 && up == 0;
    }
};

int main() {
    Solution ob;
    cout << ob.judgeCircle("RRULLD");
    return 0;
}

Đầu vào

"RRULLD"

Đầu ra

1