import java.util.Scanner
import java.util.Stack
/**
* @author Owner
*
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in)
int n= sc.nextInt()//3条测试数据数据
Stack<Character>stack = null
while(n!=0){
//从控制台读入一个测试字符串[]() [(])
String str = sc.next()
//如果该输入字符串为奇数,说明不匹配
if(str.length() % 2 == 1){
System.out.println("No")
}else{
//说明字符是偶数
stack = new Stack<Character>()
//遍历第一条测试字符串[]() [(])
for(int i=0i<str.length()i++){
if(stack.isEmpty()){
//如果栈是空的
stack.push(str.charAt(i))
}else if(stack.peek() == '[' &&str.charAt(i) == ']' || stack.peek() == '(' &&str.charAt(i) == ')'){
//说明此时栈中字符不是空的,并且符合,
stack.pop()
}else{
stack.push(str.charAt(i))
}
}
if(stack.isEmpty()){
//如果栈是空的,说明<a href="https://www.baidu.com/s?wd=%E6%8B%AC%E5%8F%B7&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3mhDvP10Ln19hrANbP1fk0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHnLP1nsPHDznHTkn1fYPHnz" target="_blank" class="baidu-highlight">括号</a>匹配
System.out.println("Yes")
}else{
//说明栈不为空,<a href="https://www.baidu.com/s?wd=%E6%8B%AC%E5%8F%B7&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3mhDvP10Ln19hrANbP1fk0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHnLP1nsPHDznHTkn1fYPHnz" target="_blank" class="baidu-highlight">括号</a>不匹配
System.out.println("No")
}
}
n--
}
}
}
import java.util.Stackpublic class Translate {
//程序入口
public static void main(String[]args){
int n = Translate.translate(3467,8)
System.out.println("结果是:"+n)
}
public static int translate(int number, int base_num) {
//使用栈
Stack<Integer>stack = new Stack<Integer>()
while(number>0){
//压栈
stack.push(number % base_num)
number /= base_num
}
int n = stack.size()
int val=0
//依次出栈并合成结果(用我们熟悉的十进制表示,所以乘以10)
for(int i=0i<ni++){
val=val*10+stack.pop()
}
return val
}
}