Mô tả
Hệ thống xác thực điện tử VNeID cho phép các ứng dụng truy cập tài nguyên thông qua cơ chế ủy quyền lồng nhau. Khi ứng dụng A ủy quyền cho ứng dụng B, B lại ủy quyền cho C, ta có một chuỗi truy cập nhiều tầng. Đội bảo mật cần phân tích tệp nhật ký để biết mức độ ủy quyền sâu nhất mà hệ thống đang chịu, từ đó đánh giá rủi ro lạm dụng đặc quyền.
Tệp nhật ký được biên soạn thành một chuỗi ký tự, trong đó:
- Mỗi lần bắt đầu một phiên ủy quyền mới (mở một lớp lồng nhau) được ký hiệu bằng dấu ngoặc mở
(. - Mỗi lần kết thúc phiên ủy quyền hiện tại (đóng lớp lồng nhau) được ký hiệu bằng dấu ngoặc đóng
). - Các ký tự chữ cái (như
A,B,x) đại diện cho mã ứng dụng và không ảnh hưởng đến việc đếm độ sâu.
Bạn được giao nhiệm vụ: viết chương trình đọc chuỗi nhật ký và tính độ sâu ủy quyền lớn nhất, tức số lớp ngoặc lồng nhau nhiều nhất tại một thời điểm. Biết rằng tệp nhật ký luôn hợp lệ về mặt cân bằng ngoặc.
Đầu vào
- Một chuỗi duy nhất
sgồm các ký tự chữ cái in thườngađếnz, dấu ngoặc mở(và dấu ngoặc đóng).
Đầu ra
- Một số nguyên không âm duy nhất là độ sâu lồng nhau lớn nhất của chuỗi
s.