/*
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
*/
#include "iostream"
#include "string"
#include "stack"
#include "map"
using namespace std;
class Solution
{
public:
bool isValid(string s)
{
stack<char> z;
map<char, char> m;
m['('] = ')';
m['['] = ']';
m['{'] = '}';
for (char c : s)
{
if (c == '(' || c == '[' || c == '{')
{
z.push(c);
}
else
{
if(z.empty())
{
return false;
}
else if (m[z.top()] == c)
{
z.pop();
}
else
{
return false;
}
}
}
if (z.empty())
{
return true;
}
else
{
return false;
}
}
};
int main(int argc, char const *argv[])
{
string s;
cin >> s;
Solution so;
cout << so.isValid(s) << endl;
return 0;
}