Mô tả
Tại công ty TMA, đội DevOps viết hàng trăm tệp cấu hình YAML mỗi ngày để triển khai hệ thống lên cụm máy chủ. Trước khi đẩy lên luồng CI/CD, một đoạn script tự động sẽ rà soát cú pháp để đảm bảo không có cặp ngoặc nào bị lạc mất "người bạn đời" của mình.
Cấu hình YAML có thể chứa bốn loại ngoặc: ngoặc tròn (), ngoặc vuông [], ngoặc nhọn {} và ngoặc nhọn kép ||. Trong đó, ngoặc nhọn kép được đặc trưng bởi hai dấu gạch đứng | — dấu mở và dấu đóng hoàn toàn giống nhau về mặt hình thức.
Nhiệm vụ của bạn là viết một hàm xác nhận xem một chuỗi cấu hình cho trước có đóng mở ngoặc khớp nhau đầy đủ và đúng thứ tự hay không.
Đầu vào
Một tham số duy nhất:
s(chuỗi): nội dung tệp cấu hình YAML cần kiểm tra.
Đầu ra
- Trả về
truenếu mọi cặp ngoặc đều hợp lệ (đủ cặp, lồng nhau đúng thứ tự), trả vềfalsenếu ngược lại.
Ràng buộc
- Độ dài chuỗi
snằm trong khoảng từ 0 đến 10^5 ký tự. - Chuỗi
schỉ chứa các ký tự ASCII in được (mã 32 đến 126).
Ví dụ
Ví dụ 1
- Đầu vào:
"deploy: [env: {name: prod}]" - Đầu ra:
true
Giải thích: Ngoặc vuông bao lấy ngoặc nhọn, ngoặc nhọn đóng trước rồi mới đến ngoặc vuông đóng — hoàn toàn khớp.
Ví dụ 2
- Đầu vào:
"config: (env: prod]" - Đầu ra:
false
Giải thích: Mở bằng ngoặc tròn nhưng đóng bằng ngoặc vuông, loại ngoặc không khớp.