问题 5767 --兔兔的括号字符串

5767: 兔兔的括号字符串★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 57  解决: 43
[提交][状态][命题人:]

题目描述

给定一个长度为n(n为偶数)的仅有'('与')'组成的字符串,其中左右括号都为n/2个。
每次都可以将字符串中某个位置上的括号移动到字符串的开头或结尾,你的任务是找到将括号串变为合法的括号串所需的最少移动次数。
合法的括号串如下:
  • "()"是一个合法的括号串
  • 若s是一个合法的括号串,则"("+s+")"也是一个合法的括号串。
  • 若s和t是一个合法的括号串,则s+t也是一个合法的括号串。
如:"()()","(())()","(())"与"()"都是合法的括号串。而")(","()("与")))"为不合法的括号串。

输入

第一行为整数T,表示有T(1≤T≤2000)组测试样例。
每组测试样例的第一行为整数n(2≤n≤50),表示括号字符串的长度,测试数据保证n为偶数。
第二行为长度为n的括号字符串,其中左右括号均为n/2个。

输出

每组测试样例输出一个整数,表示将给定的括号串变为合法的括号串所需的最少移动次数。
样例输入
Copy
4
2
)(
4
()()
8
())()()(
10
)))((((())
样例输出
Copy
1
0
1
3

提示

在第1组测试样例中,只需将第一个括号移到字符串结尾处即可。
在第3组测试样例中,只需将最后一个括号移到字符串结开头即可。
在第4组测试样例中,只需将6、7、8三个位置上的左括号移到开头,得到合法的括号串"((()))(())"。

来源

 

[提交][状态]