代码:
#include<iostream>
#include<stack>
using namespace std;
const int N=1000;
char m[N];
stack<char> t;
void choose(char s){
if(t.empty()){
t.push(s);
}
else{
if(s=='('||s=='{'||s=='['){
t.push(s);
}
else{
if(s==')'){
if(t.top()=='('){
t.pop();
}
else
t.push(s);
}
if(s=='}'){
if(t.top()=='{'){
t.pop();
}
else
t.push(s);
}
if(s==']'){
if(t.top()=='['){
t.pop();
}
else
t.push(s);
}
}
}
}
int main(){
int n;
cin>>n;
char s;
while(n--){
cin>>s;
choose(s);
}
if(t.empty()){
cout<<"True";
}
else{
cout<<"False";
}
int f=t.size();
for(int i=1;i<=f;i++){
cout<<t.top()<<' ';
t.pop();
}
cout<<endl;
return 0;
}
这个代码写的非常幼稚,非常啰嗦,可以有许多改进反思的地方