26-题目1153:括号匹配问题
2016-03-03 16:56
447 查看
http://ac.jobdu.com/problem.php?pid=1153
#include<iostream> #include<fstream> #include<string> using namespace std; int main() { int i, length = 0; char arr[101]; ifstream cin("data.txt"); while (cin >> arr) { length = strlen(arr); //获得字符串的长度 //cout << length; char *flag = new char[length]; int *left = new int[length]; int right, lsum = 0, rsum = 0, j = 0; //left表示当前的最左括号位置下标,lsum表示左括号出现的次数 for (i = 0; i < length; i++)//开始判断 { if (arr[i] == '(') { left[j++] = i; //左括号的位置 lsum++; } else if (arr[i] == ')') { right = i; rsum++; if (lsum < rsum) //右括号不匹配 { flag[i] = '?'; rsum--; } else // 匹配 { flag[left[--j]] = ' '; flag[right] = ' '; } } else flag[i] = ' '; //字母 } for (; j > 0; j--)//左括号不匹配,左括号多了 flag[left[j-1]] = '$'; cout << arr << endl; for (i = 0; i < length; i++) cout << flag[i]; cout << endl; }//end of while system("pause"); return 0; }
相关文章推荐
- iOS二维码生成
- 95.The PRODUCTS table has the following structure:
- 皮尔逊相关系数
- 卡尔曼滤波—Simple Kalman Filter for 2D tracking with OpenCV
- Linux系统挂载U盘
- Leetcode217. Contains Duplicate
- linux 添加用户、权限
- maven安装以及eclipse配置maven
- POJ 3013 Big Christmas Tree 最短路
- exit函数
- SSH(一)---Spring框架概述和SpringMVC原理
- 获取当前UITableViewCell在TableView上的索引
- Masonry介绍与使用实践~Autolayout
- Android性能优化——之防止内存泄露
- 我的java学习 の 数组作业
- HP-UX常用命令
- Android 滑动冲突的解决方法
- [iOS]iOS Category
- VS调试去掉警告
- 数组循环右移