#include <iostream>
#include <algorithm>
#include "string"
#include "vector"
#include "stack"
using namespace std;
bool isValid(string s)
{
stack<char>v;
for (int i = 0; i < s.size(); i++)
{
if (s[i] == '(' || s[i] == '[' || s[i] == '{')
{
v.push(s[i]);
}
else
{
if (v.empty())//必须做这个判断!注意!
{
return false;
}
}
if (s[i] == ')')
{
if (v.top() != '(')
{
return false;
}
v.pop();
}
if (s[i] == ']')
{
if (v.top() != '[')
{
return false;
}
v.pop();
}
if (s[i] == '}')
{
if (v.top() != '{')
{
return false;
}
v.pop();
}
}
return v.empty();
}
int main()
{
cout << isValid("}]}()){{)[{[(]");
system("pause");
return 0;
}