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