#include<iostream>
#include<stack>
#include<string>
using namespace std;
class Solution{
public:
bool isValid(string s)
{
stack<char>s1;
string ch;
for(int i=0;i<s.size();i++)
{
if(s[i]=='('||s[i]=='{'||s[i]=='[')
{
s1.push(s[i]);
ch = ch + s[i];
}
else if(ch.empty()) return false;
else if((s[i]=='}'&&ch[ch.length()-1]=='{')||(s[i]==')'&&ch[ch.length()-1]=='(')||(s[i]==']'&&ch[ch.length()-1]=='['))
{
ch.erase(ch.size()-1);
s1.pop();
}
else return false;
}
return s1.empty();
}
};
int main()
{
Solution a;
string s="(})";
cout << a.isValid(s) << endl;
}
stack栈