class ArrayStack:
"""
定义一个LIFO栈,借助了Python的list作为底层实现
"""
def __init__(self):
"""构造空栈"""
self._data = []
def __len__(self):
"""返回栈中元素的个数"""
return len(self._data)
def is_empty(self):
"""若栈空,则返回True"""
return len(self._data) == 0
def push(self, e):
"""向栈中压入一个元素e"""
self._data.append(e)
def top(self):
"""返回(但不删除)栈顶元素;
若栈空,则抛出错误
"""
if self.is_empty():
return False
return self._data[-1]
def pop(self):
"""删除并返回栈顶元素的值;
若栈空,则抛出错误
"""
if self.is_empty():
return False
return self._data.pop()
# 主程序开始
dic = {')': '(', ']': '['}
n = int(input())
for i in range(n):
S = ArrayStack() # 新建一个栈
strinput = input().strip()
flag = True
for x in strinput:
if x in '([':
S.__________
elif x in ')]':
if __________:
S.pop()
else:
flag = False
break
if flag == True and __________:
print('Yes')
else:
print('No')