Dãy ngoặc hợp lệ
Xem dạng PDF
Gửi bài giải
Điểm:
500,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch
Cho một xâu ~S~ chỉ gồm các ký tự (, ), {, }, [ và ]. Xâu ~S~ được gọi là hợp lệ nếu các ngoặc mở phải được đóng bởi cùng loại ngoặc và đúng thứ tự. Mọi ký tự mở phải có ký tự đóng tương ứng.
Hãy lập trình kiểm tra xem xâu ~S~ có phải là một dãy ngoặc hợp lệ hay không.
Ví dụ: Với ~S~ = {[()]} thì đây là dãy ngoặc hợp lệ vì các ngoặc được đóng mở đúng thứ tự. Còn với ~S~ = [(]), dãy không hợp lệ vì ngoặc vuông [ chưa được đóng trước khi ngoặc tròn ) xuất hiện.
Dữ liệu
Gồm một dòng duy nhất chứa xâu ~S~ (~1 \leq |S| \leq 10^5~).
Kết quả
In ra YES nếu xâu ~S~ là dãy ngoặc hợp lệ, ngược lại in ra NO.
Ví dụ
Input 1
{[()]}
Output 1
YES
Input 2
[(])
Output 2
NO
Bình luận