Treasure (BNUOJ 44540 栈应用)
2015-09-01 15:18
218 查看
题目链接
栈应用, 注意在 # 出现之后不能匹配的情况
((#)(
(#((((()
栈应用, 注意在 # 出现之后不能匹配的情况
((#)(
(#((((()
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <string> #include <cmath> #include <queue> #include <set> #include <stack> #include <fstream> using namespace std; char str[100005]; int num[100005]; int main() { while(cin >> str) { int flag = 1; int len = strlen(str); int left = 0; memset(num, 0, sizeof(num)); int n = -1; int i; stack <char> s; for(i = 0; i < len; i++) { if(str[i] == '(') { s.push(str[i]); left++; } if(str[i] == ')') { if(!s.empty()) s.pop(); else { flag = 0; break; } if(left) left--; } if(str[i] == '#') { if(!s.empty()) s.pop(); else { flag = 0; break; } n++; num = 1; left = 0; //记录#之后多余(的个数 } } if(left > 0) flag = 0; while(!s.empty()) { s.pop(); num ++; } if(flag == 0) cout << -1 << endl; else for(i = 0; i <= n; i++) { cout << num[i] << endl; } } return 0; }
相关文章推荐
- Linux编程——多进程程序设计
- Linux Pthread——3
- Windows服务(Windows Service,system权限)程序显示界面与用户交互(xp,win7通用)
- 设置grub2开机启动项为前一次启动项
- CSS 动画之十-图片+图片信息展示
- Unity学习疑问记录之保卫伦敦塔学习体会
- bzoj2843
- 机器学习常见算法分类汇总
- ViewPager实现左右循环滑动及轮播效果(广告栏效果)
- bit rate / frame rate /sample rate等等
- BootStrap 4 中文版更新
- 链队列的入队、出队
- MFC之标签控件Tab Control
- iClap:更智能的场景化工作方式
- 使用rsync批量删除文件
- leetCode #122 Best Time to Buy and Sell Stock II
- 数据库范式
- [iOS] iOS开发埋坑之路(一)
- 不能被继承的类
- 程序员进阶