Dãy ngoặc

PDF

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

Please read the guidelines before commenting.


There are no comments at the moment.