杭电 5831
来源:互联网 发布:华东理工网络大学 编辑:程序博客网 时间:2024/06/08 01:01
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5831
题目大意:给出一些括号,在必须交换两个括号的位置的前提下字符串依然合理为Yes,否则为No。
题解:从前往后遍历,当遇到第一次’)‘的个数大于’(‘时,把’)‘换成’(‘,此后如果再有’)‘的个数大于’(‘,便是No。不要忘记特判!!
#include<iostream>#include<cstdio>#include<cstring>using namespace std;char s[100005];int main(){ int T; scanf("%d",&T); while(T--) { int n,i; scanf("%d",&n); scanf("%s",s); int sum1=0,sum2=0,sum3=0,sum4=0,flag=0; if(n%2!=0) { printf("No\n"); continue; } if(n==2&&s[0]=='('&&s[1]==')') { printf("No\n"); continue; } int flag2=0; for(i=0;i<n;i++) { if(s[i]=='(') { sum1++; sum3++; } else if(s[i]==')') { sum2++; sum4++; if(sum2>sum1&&flag2==0) { flag2=1; sum1++; sum2--; } } if(sum2>sum1) flag++; if(flag==1) break; // cout<<flag<<endl; } if(sum3!=sum4) printf("No\n"); else if(flag<1) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- 杭电 5831
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- 杭电ACM2023
- 杭电ACM2602
- 杭电ACM2955
- 杭电ACM3198
- 杭电ACM2028 求教
- 在CentOS上安装Python
- Android Looper类代码分析
- 庆祝tlProPlayer 正式集成到直播软件
- AF https 请求遇到的坑
- TCHAR 函数对照表
- 杭电 5831
- shell 判断语句 if else
- android学习----通过XML来定义Menu
- 旅行 (Standard IO)
- 枚举类型的区分
- 设置select下拉菜单为readonly只读代码实例
- javase重新开始系列之文件操作与I/O流
- 关于xcode快速开发定义自己的代码块、快速展开关闭所有方法
- IOS JS与客户端交互