Mô tả
Công ty phần mềm Vihat đang quản lý hàng trăm dự án bằng hệ thống CI/CD GitLab. Đội DevOps thường viết một công cụ kiểm tra cú pháp pipeline tự động. Công cụ này cần đọc file cấu hình, trích xuất các biểu thức điều kiện deploy và xác minh xem các dấu ngoặc tròn mở ( cũng như đóng ) bên trong có được đặt cân bằng hay không.
Biểu thức điều kiện hợp lệ khi mỗi dấu ngoặc mở ( đều có đúng một dấu ngoặc đóng ) tương ứng về phía sau và ngược lại. Vì môi trường CI đôi khi sinh ra template tự động bị thiếu dấu ngoặc, bạn cần tính xem phải chèn thêm tối thiểu bao nhiêu dấu ngoặc vào các vị trí bất kỳ (đầu, giữa, cuối chuỗi) để biểu thức trở nên hoàn toàn cân bằng.
Nhiệm vụ: Cho trước một chuỗi s mô tả một biểu thức điều kiện CI, hãy trả về số lượng dấu ngoặc tối thiểu cần chèn thêm.
Đầu vào
- Một chuỗi
sgồm các ký tự chữ cái, chữ số, dấu=, dấu_và dấu ngoặc tròn(,).
Đầu ra
- Một số nguyên không âm — số dấu ngoặc tối thiểu cần chèn thêm để chuỗi cân bằng.
Ràng buộc
1 <= |s| <= 10^6schỉ chứa ký tự trong tậpa-z,A-Z,0-9,=,_,(,).
Ví dụ
Ví dụ 1
- Đầu vào:
"(BRANCH==main)" - Đầu ra:
0 - Giải thích: Chuỗi có một ngoặc mở
(ở vị trí đầu và một ngoặc đóng)ở cuối, đã cân bằng sẵn. Không cần chèn thêm gì cả.
Ví dụ 2
- Đầu vào:
"((ENV==prod" - Đầu ra:
2 - Giải thích: Chuỗi có hai ngoặc mở nhưng không có ngoặc đóng nào. Cần chèn thêm 2 dấu
)ở cuối để được .