码迷,mamicode.com
首页 > 其他好文 > 详细

Sicily 1543. Completing Brackets

时间:2015-01-10 08:53:23      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:算法   c语言   sicily   遍历   c++   

#include "iostream"
#include "string"
#include "stack"
using namespace std;

/*
题目链接:http://soj.sysu.edu.cn/show_problem.php?pid=1543&cid=
主要思想:先用栈来消除那些已经匹配了的,
然后再在剩下的那些里看有多少左括号和右括号;
每有一个右括号,就在字符串左边加上一个左括号;
每有一个左括号,就在字符串右边加上一个右括号
*/
int main(){
	string s;
	while (cin >> s){
		int flag = 0;
		stack<char> s1;
		for (size_t i = 0; i < s.size(); i++){
			if (!s1.empty() && s1.top() == '[' && s[i] == ']')
				s1.pop();
			else
				s1.push(s[i]);
		}
		while (!s1.empty()){
			if (s1.top() == '['){
				s += ']';
				s1.pop();
			}
			else{
				s = '[' + s;
				s1.pop();
			}
		}
		cout << s << endl;
	}
	return 0;
}

Sicily 1543. Completing Brackets

标签:算法   c语言   sicily   遍历   c++   

原文地址:http://blog.csdn.net/liujan511536/article/details/42570037

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!