hdu 5831 Rikka with Parenthesis II 2016 Multi-University 8
2016-08-12 18:34
417 查看
Problem:acm.hdu.edu.cn/showproblem.php?pid=5831
题意:给个括号序列,问能不能通过一次把两个不同位置的符号交换的操作,使得序列里的所有括号左右配对合法
分析:左括号进栈,如果是右括号而且栈顶是左括号,就两个一起弹出
题目要求一定有且只有一次操作,如果最后发现栈空(全部配对正确),而原来的序列长度又不足4(那就只能长为2),交换一次就变成不合法
之前一直卡一种情况:” ) ) ( ( “…因为留在栈内的括号不只一对,但交换一次就能同时使两对都合法配对
题意:给个括号序列,问能不能通过一次把两个不同位置的符号交换的操作,使得序列里的所有括号左右配对合法
分析:左括号进栈,如果是右括号而且栈顶是左括号,就两个一起弹出
题目要求一定有且只有一次操作,如果最后发现栈空(全部配对正确),而原来的序列长度又不足4(那就只能长为2),交换一次就变成不合法
之前一直卡一种情况:” ) ) ( ( “…因为留在栈内的括号不只一对,但交换一次就能同时使两对都合法配对
#include <stdio.h> #define N 100000 char stack ; int main() { int iTom; scanf("%d", &iTom); while( iTom-- ) { int i,n,top,left,right; scanf("%d%*c", &n); for(i = top = 0; i<n; i++) { stack[top++] = getchar(); // 合法配对一起弹出 if( stack[top-1] == ')' && top > 1 && stack[top-2] == '(' ) top -= 2; } // 数栈内左、右括号各几何 // 留在栈里的都是未合法配对的 for(i = left = right = 0; i<top; i++) if( stack[i] == '(' ) left++; else right++; if( left == right && left < 3 ) // 左、右括号数相同 if( !left ) // 栈空,全配完对 if( n > 2 ) // 原始序列不只一对括号 puts("Yes"); else puts("No"); else // 栈非空 puts("Yes"); else // 左、右括号数不等,或相等但多于一对,只交还一次不行 puts("No"); } return 0; }
相关文章推荐
- (HDU 5831)2016 Multi-University Training Contest 8 Rikka with Parenthesis II(水?)
- hdu 5831 Rikka with Parenthesis II(2016 Multi-University Training Contest 8——模拟)
- HDU 5831 Rikka with Parenthesis II (贪心) -2016杭电多校联合第8场
- 2016 Multi-University Training Contest 8 1011 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(模拟)
- 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
- hdu-5831 Rikka with Parenthesis II(贪心)
- hdu 5831 Rikka with Parenthesis II【水题】