括号匹配I
2013-10-24 12:59
309 查看
Inuyasha得到了一个由"("和")"组成的字符串,比如"(())()","()","(()(()))"是括号匹配的,而")(","(()","(()))("是括号不匹配的。
为了让这个字符串括号匹配,Inuyasha可以去除某些括号。
他想知道,他能得到的最长的括号匹配的字符串有多长?
Input
本题有多组测试数据,输入的第一行是一个整数T代表着测试数据的数量,接下来是T组测试数据。
对于每组测试数据:
第1行 包含一个由"("和")"组成的非空字符串,字符串的长度不超过106。
Output
对于每组测试数据:
第1行 输出Inuyasha能得到的最长的括号匹配的字符串。
Sample Input
2
(()))(
((()())
Sample Output
4
6
为了让这个字符串括号匹配,Inuyasha可以去除某些括号。
他想知道,他能得到的最长的括号匹配的字符串有多长?
Input
本题有多组测试数据,输入的第一行是一个整数T代表着测试数据的数量,接下来是T组测试数据。
对于每组测试数据:
第1行 包含一个由"("和")"组成的非空字符串,字符串的长度不超过106。
Output
对于每组测试数据:
第1行 输出Inuyasha能得到的最长的括号匹配的字符串。
Sample Input
2
(()))(
((()())
Sample Output
4
6
#include<stdio.h> #include<stdlib.h> #define N 1000005 int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int t,ans,i,j,pp; char s ,b ; scanf("%d",&t); getchar(); while(t--){ gets(s); ans=0;pp=1; for(i=0;s[i];i++){ if(s[i]=='(')b[pp++]=s[i]; else if(pp==1)continue; else if(s[i]==')'&&b[pp-1]=='('){pp--;ans++;} } printf("%d\n",ans*2); } return 0; }
相关文章推荐
- Hadoop Job在集群上运行出现“Error initializing”错误
- 市交通运输局召开专题会议积极征求“五区一港两基地”公交线路调整意见
- MATLAB7 MYSQL数据库
- A Byte of Python实例中的备份数据小程序第五版
- 关于copy, mutableCopy, 浅拷贝,深拷贝
- 输出二进制数
- Pro Android学习笔记(四二):Fragment(7):切换效果
- android开发在adapter中使用反射添加元素
- C++笔记(1)explicit构造函数
- web 页面传值乱码问题
- android字体闪烁动画(线程)
- 摆布大三角
- mongodb安装及简介
- Android的AndroidManifest.xml android:process元素说明
- Relation(Path集-改变father后必须进行dis维护)
- android_WallpaperService和Launcher
- 设计中的手写识别(输入法)笔画--中篇
- 转:: 刺鸟:用python来开发webgame服务端(4)
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
- Senior Software Engineer - 2013/10/21