Xử lý chuỗi
Mô tả
Hệ thống thanh toán PayMomo ghi lại mọi yêu cầu giao dịch dưới dạng các thông điệp JSON. Hôm nay, tổ giám sát phát hiện một vài log bị lỗi khi serialize: rõ ràng chuỗi JSON bị cắt ngang hoặc nối lệch khiến số lượng dấu ngoặc mở và đóng không khớp, khiến trình phân tích cú pháp không thể đọc nội dung giao dịch.
Để sửa nhanh, bạn chỉ cần đếm xem cần chèn tối thiểu bao nhiêu dấu ngoặc (mở ( hoặc đóng )) vào các vị trí bất kỳ trong chuỗi log để nó trở thành một chuỗi ngoặc hợp lệ. Bạn không cần quan tâm đến nội dung JSON bên trong, chỉ cần xử lý các dấu ngoặc.
Đầu vào
- Một chuỗi
sgồm duy nhất các ký tự(và).
Đầu ra
- Một số nguyên dương không âm — số lượng dấu ngoặc tối thiểu cần chèn thêm.
Ràng buộc
- Độ dài chuỗi
stừ 1 đến 100000 ký tự. - Chuỗi chỉ chứa ký tự
(hoặc).
Ví dụ
Ví dụ 1:
- Đầu vào:
s = "())" - Đầu ra:
1 - Giải thích: Chuỗi có sẵn một cặp
()hợp lệ ở đầu và một dấu)dư thừa ở cuối. Chỉ cần chèn thêm một dấu(vào đầu chuỗi, ta được(() )hợp lệ. Đáp án là 1.
Ví dụ 2:
- Đầu vào:
s = "(()))(" - Đầu ra:
2 - Giải thích: Ta thấy
(đầu tạo cặp với)thứ hai,)thứ ba khớp với(còn dư. Còn lại hai dấu)và một dấu(thừa chưa khớp. Ta cần chèn một(trước hai)và một)cuối cùng cho(dư. Đáp án là 2.
Ví dụ 3:
- Đầu vào:
s = "()()" - Đầu ra:
0 - Giải thích: Chuỗi đã hoàn toàn cân bằng, mỗi mở có đóng khớp đúng vị trí. Không cần chèn gì thêm.