记录合法的最长的串
2016-03-15 19:39
183 查看
http://codeforces.com/problemset/problem/223/A
大概题意就是符号匹配,记录合法的最长的串
大概题意就是符号匹配,记录合法的最长的串
#include <iostream> #include <cstring> using namespace std; string a; int f[100002];//在本点,合法的最大的串的最左段的位置 int ans[100002]; int main() { cin>>a; f[0]=0; ans[0]=0; int n=a.size(); for(int i=1;i<n;i++) { if(a[i-1-f[i-1]]=='('&&a[i]==')'||a[i-1-f[i-1]]=='['&&a[i]==']') { f[i]=f[i-1]+2; ans[i]=ans[i-1]; if(a[i]==']') ans[i]++; if(i-2-f[i-1]>=0) { f[i]+=f[i-2-f[i-1]]; ans[i]+=ans[i-2-f[i-1]]; } } else f[i]=0,ans[i]=0; } int max=0,fm=0; for(int i=0;i<n;i++) { if(max<=ans[i]) { max=ans[i]; fm=i; } } cout<<ans[fm]<<endl; for(int i=fm-f[fm]+1;i<=fm;i++) { cout<<a[i]; } cout<<endl; return 0; }
相关文章推荐
- 图论面试题
- android.mk编译apk在64位机器内运行so库报错
- JavaScript子文本传到父文本框显示
- 防止站点数据被採集——成佩涛黑客
- Tomcat源码解析(五):Connector连接器的初始化和启动流程
- Python——编写函数装饰器
- Two Strings
- 你看得懂的海明码校验和纠错原理
- spring工作机制及为什么要用?
- http://gank.io/post/560e15be2dca930e00da1083
- OC语言—— add 与set 的区别
- 堆排序nlogn
- iOS 多视图—视图切换之代理Delegate传参切换
- 模板:线段树(1)点修改
- W3C下的冒泡和捕获机制
- bzoj 2705: [SDOI2012]Longge的问题 【欧拉函数求GCD】
- Red Hat 7.2 RPM安装Mysql 5.7.11
- 第三周项目3—穷举法解决组合问题(换分币)
- 希尔排序-nlogn
- 十步完全理解SQL(转)