Xử lý chuỗi
Mô tả
Bạn là kỹ sư mạng của VNPT, phụ trách cấu hình tường lửa cho hệ thống tổng đài khu vực. Mỗi luật bảo mật được viết dưới dạng một biểu thức điều kiện, bên trong có nhiều nhóm con được bọc bởi ba loại ngoặc: ngoặc đơn (), ngoặc vuông [] và ngoặc nhọn {}.
Trước khi đẩy cấu hình lên thiết bị, bạn phải kiểm tra xem biểu thức đó có được viết đúng cú pháp về mặt ngoặc hay không. Một biểu thức hợp lệ khi:
- Mỗi loại ngoặc mở đều có đúng một ngoặc đóng cùng loại tương ứng.
- Các cặp ngoặc không được phép cắt chéo nhau, mà chỉ được phép lồng nhau đúng tầng.
Nhiệm vụ của bạn: cho một chuỗi chỉ gồm các ký tự ngoặc, hãy xác định nó có hợp lệ hay không.
Đầu vào
- Một chuỗi
schỉ chứa các ký tự trong tập hợp{ '(', ')', '[', ']', '{', '}' }.
Đầu ra
- Trả về
Truenếu chuỗi hợp lệ, ngược lại trả vềFalse.
Ràng buộc
- Độ dài chuỗi
nthỏa mãn0 <= n <= 10000.
Ví dụ
Ví dụ 1:
- Đầu vào:
s = "([{}])" - Đầu ra:
True - Giải thích: Ngoặc đơn ngoài cùng bọc ngoặc vuông, ngoặc vuông bọc ngoặc nhọn. Mở và đóng khớp hoàn toàn theo thứ tự từ trong ra ngoài.
Ví dụ 2:
- Đầu vào:
s = "([)]" - Đầu ra:
False - Giải thích: Ngoặc đơn mở trước nhưng lại bị ngoặc vuông đóng trước, hai cặp cắt chéo nhau nên không hợp lệ.
Ví dụ 3:
- Đầu vào:
s = "" - Đầu ra:
True - Giải thích: Chuỗi rỗng được coi là hợp lệ.