Mô tả
Tại các kiosk vé tự động bên tuyến đường sắt Hà Nội, mỗi thao tác mua vé chạy trong một buồng cách ly tiến trình riêng. Để Hệ thống điều phối xác định buồng nào đang hoạt động, mỗi tiến trình kèm theo một chuỗi đường dẫn isolator — chuỗi này đánh dấu các lớp phân cách bằng cặp ngoặc tròn. Ví dụ app(kiosk(gaHaNoi)) cho thấy hai lớp bọc, lớp ngoài là app rồi bên trong là kiosk.
Tuy nhiên đôi khi nhân viên vận hành nhập thiếu hoặc thừa ngoặc do gõ tay trên màn hình cảm ứng, dẫn tới đường dẫn không hợp lệ. Ban Quản lý đường sắt nhờ bạn viết một hàm kiểm tra: một chuỗi đường dẫn isolator được gọi là hợp lệ khi mọi dấu ( đều có dấu ) đóng lại đúng thứ tự, mọi dấu ) đều đóng lại một dấu ( đã mở trước đó, và cuối chuỗi không còn ngoặc nào chưa đóng. Các ký tự khác trong chuỗi không ảnh hưởng đến kiểm tra.
Đầu vào
- Một chuỗi
s(kiểu dữ liệu: chuỗi).
Đầu ra
- Trả về
truenếu chuỗi đường dẫn isolator hợp lệ, ngược lại trả vềfalse.
Ràng buộc
- Độ dài chuỗi
snằm trong khoảng từ 0 đến 10^5 ký tự. - Chuỗi chỉ chứa các ký tự chữ cái, chữ số, dấu chấm, gạch dưới và ngoặc tròn.
- Số lượng dấu ngoặc trong chuỗi không vượt quá 10^5.
Ví dụ
Ví dụ 1
Đầu vào: app(kiosk(gaHaNoi))
Giải thích: Dấu ( đầu tiên mở lớp app, dấu ( thứ hai mở lớp kiosk. Dấu ) thứ nhất đóng kiosk, dấu ) thứ hai đóng app. Thứ tự đóng mở hoàn toàn đúng, nên kết quả là true.
Ví dụ 2
Đầu vào: ga(A(B)
Giải thích: Có hai dấu ( mở nhưng chỉ một dấu ) đóng. Cuối chuỗi vẫn còn một ngoặc chưa đóng, nên kết quả là false.