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:
HungTV
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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.