Description
A series of brackets is complete if we can pair off each left bracket '[' with a right bracket ']' that occurs later in the series. Every bracket must participate in exactly one such pair.
Given a String text add the minimal number of brackets to the beginning and/or end of text to make it complete. Return the result.
Input
Each line of input contains a string, text. text will have between 1 and 50 characters inclusive, and contain only the characters "[" and "]". Process to the end of input.
Output
Output one line for each case, the result.
Sample Input
[[ ][ [[[[]]]]
Sample Output
[[]] [][] [[[[]]]]
Problem Source: Topcoder SRM
// Problem#: 1543
// Submission#: 3685436
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
#include<vector>
using namespace std;
int main(){
string s;
while(cin>>s){
int count =0;
int len=s.length();
for(int i=0; i<len; i++){
if(s[i]=='[')
count++;
else{
count--;
}
if(count<0){
cout<<"[";
count++;
}
}
cout<<s;
while(count>0){
cout<<"]";
count--;
}
cout<<"\n";
}
return 0;
}