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

Xa gốc tọa độ nhất trong C++


Cho chuỗi s gồm các ký tự 'L', 'R', '?'. 'L' đi trái 1 đơn vị, 'R' đi phải 1 đơn vị, '?' có thể thay bằng 'L' hoặc 'R'. Từ vị trí 0, tìm khoảng cách tối đa có thể đạt được.

Ví dụ: "LLRRL??" → 3 (thay ? bằng L → 5 trái, 2 phải).

Giải thuật: Đếm l (số L), r (số R), op (số ?). Kết quả = max(l,r) - min(l,r) + op.

Ví dụ

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

class Solution {
public:
    int solve(string s) {
        int op = 0, l = 0, r = 0;
        for (char c : s) {
            if (c == 'L') l++;
            else if (c == 'R') r++;
            else op++;
        }
        return max(l, r) - min(l, r) + op;
    }
};

int main() {
    Solution ob;
    cout << (ob.solve("LLRRL??"));
}

Đầu vào

"LLRRL??"

Đầu ra

3