Description:
Accept:
#include <iostream>
#include <vector>
#include <queue>
#include <stack>
using namespace std;
stack<char> stk;
string s;
int main()
{
cin >> s;
int flag = 1;
for (int i = 0; i < s.length(); i++)
{
if (s[i] == '(' || s[i] == '[' || s[i] == '{')
stk.push(s[i]);
else if (s[i] == ')' || s[i] == ']' || s[i] == '}')
{
if (stk.empty())
{
cout << "No" << endl;
flag = 0;
break;
}
if (s[i] == ')')
{
if (stk.top() == '(')
{
stk.pop();
}
else
{
cout << "No" << endl;
break;
}
}
if (s[i] == ']')
{
if (stk.top() == '[')
{
stk.pop();
}
else
{
cout << "No" << endl;
break;
}
}
if (s[i] == '}')
{
if (stk.top() == '{')
{
stk.pop();
}
else
{
cout << "No" << endl;
break;
}
}
}
}
if (stk.empty() && flag)
cout << "Yes" << endl;
return 0;
}