HDU 5831 Rikka with Parenthesis II(机智)
2016-09-02 16:07
483 查看
Description
给出一个括号序列,只允许且必须交换两个位置的括号,问是否存在一种交换方式使得交换后的序列是一个合法括号序列
Input
第一行一整数T表示用例组数,每组用例首先输入一整数n表示括号序列长度,之后是一个括号序列(1<=T<=1000,1<=n<=10^5)
Output
对于每组用例,如果存在一种交换方案使得交换后形成一个合法的括号序列则输出Yes,否则输出No
Sample Input
3
4
())(
4
()()
6
)))(((
Sample Output
Yes
Yes
No
Solution
交换两个左括号或者交换两个右括号毫无意义,那么必然是交换一个左括号和一个右括号,设要交换的左右括号位置分别是pos1和pos2,显然pos1>pos2(因为如果pos1
给出一个括号序列,只允许且必须交换两个位置的括号,问是否存在一种交换方式使得交换后的序列是一个合法括号序列
Input
第一行一整数T表示用例组数,每组用例首先输入一整数n表示括号序列长度,之后是一个括号序列(1<=T<=1000,1<=n<=10^5)
Output
对于每组用例,如果存在一种交换方案使得交换后形成一个合法的括号序列则输出Yes,否则输出No
Sample Input
3
4
())(
4
()()
6
)))(((
Sample Output
Yes
Yes
No
Solution
交换两个左括号或者交换两个右括号毫无意义,那么必然是交换一个左括号和一个右括号,设要交换的左右括号位置分别是pos1和pos2,显然pos1>pos2(因为如果pos1
#include<cstdio> #include<iostream> using namespace std; #define maxn 111111 int T,n; char s[maxn]; int main() { scanf("%d",&T); while(T--) { scanf("%d%s",&n,s); int p1=-1,p2=-1; for(int i=0;i<n;i++) if(s[i]==')') { p1=i; break; } for(int i=n-1;i>=0;i--) if(s[i]=='(') { p2=i; break; } if(p1!=-1&&p2!=-1)swap(s[p1],s[p2]); int cnt=0,flag=1; for(int i=0;i<n;i++) if(s[i]=='(')cnt++; else { cnt--; if(cnt==-1) { flag=0; break; } } if(cnt)flag=0; printf("%s\n",flag?"Yes":"No"); } return 0; }
相关文章推荐
- HDU 5831 Rikka with Parenthesis II
- hdu 5831 Rikka with Parenthesis II
- hdu_5831_Rikka with Parenthesis II(模拟)
- hdu 5831 (Rikka with Parenthesis II)
- 贪心,括号序列(Rikka with Parenthesis II,HDU 5831)
- HDU 5831 Rikka with Parenthesis II
- hdu 5831 Rikka with Parenthesis II(2016 Multi-University Training Contest 8——模拟)
- hdu 5831 Rikka with Parenthesis II 2016 Multi-University 8
- HDU 5831 Rikka with Parenthesis II (贪心) -2016杭电多校联合第8场
- HDU 5831 Rikka with Parenthesis II
- hdu 5831 Rikka with Parenthesis II 线段树
- (HDU 5831)2016 Multi-University Training Contest 8 Rikka with Parenthesis II(水?)
- HDU 5831 Rikka with Parenthesis II
- hdu 5831 Rikka with Parenthesis II【水题】
- HDU-5831-Rikka with Parenthesis II-括号匹配
- 【模拟】 【HDU 5831】 Rikka with Parenthesis II
- hdu-5831 Rikka with Parenthesis II(贪心)
- HDU 5831 Rikka with Parenthesis II (贪心)
- HDU 5831 Rikka with Parenthesis II
- HDU 5831 Rikka with Parenthesis II (括号匹配)