经典括号匹配问题。
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
while (t-->0) {
int n = sc.nextInt();
sc.nextLine();
String s = sc.nextLine();
char[] c = s.toCharArray();
LinkedList<Character> stack = new LinkedList<>();
int ans=0;
for (int i = 0; i < c.length; i++) {
//将左括号放入栈中
if(c[i]=='(')
{
stack.push(c[i]);
}
if(c[i]==')')
{
//如果遇到右括号,并且栈为空的时候,说明遇到了一个不匹配的,直接ans++
if(stack.isEmpty())
{
ans++;
}
else
{
//如果栈不为空,将栈顶元素弹出
stack.pop();
}
}
}
System.out.println(ans);
}
}