Dãy ngoặc
Submit solution
Points:
10.00 (partial)
Time limit:
1.0s
Memory limit:
64M
Input:
stdin
Output:
stdout
Problem type
Allowed languages
C++, Python, Scratch
Một dãy ngoặc đúng là một xâu gồm các ký tự "(" và ")" được định nghĩa đệ quy như sau:
- Dãy rỗng (không có ký tự nào) là một dãy ngoặc đúng.
- Nếu A là một dãy ngoặc đúng thì A – xâu tạo thành bằng cách thêm một ký tự "(" vào đầu xâu A và thêm một ký tự ")" vào cuối xâu A – là dãy ngoặc đúng.
- Nếu A và B là hai dãy ngoặc đúng thì AB – Xâu tạo thành bằng cách lấy xâu B nối vào cuối xâu A – là dãy ngoặc đúng.
Những xâu ký tự không thể xây dựng theo cách trên không phải dãy ngoặc đúng.
Yêu cầu:
Kiểm tra một xâu ký tự có phải là dãy ngoặc đúng hay không.
Dữ liệu:
- Dòng 1 chứa số ~q~ là số xâu cần kiểm tra (~q ≤ 10~)
- ~q~ dòng tiếp mỗi dòng chứa một xâu ký tự độ dài không quá ~10^5~ là một xâu cần kiểm tra.
Xâu có thể chứa các ký tự chữ cái, chữ số, khoảng trắng, ký hiệu dấu ngoặc '(' và ')'.
Kết quả:
Ứng với mỗi xâu trong dữ liệu, ghi ra từ YES nếu đó là một dãy ngoặc đúng, ghi ra từ NO nếu ngược lại
Input
2
(())()((()))
((())
Output
YES
NO
Comments