class Solution
{
public:
bool isValid(string s)
{
std::stack<char> p;
char temp;
if (s.length() % 2 != 0)
return false;
for (int i = 0; i < s.length(); i++)
{
switch (s[i])
{
case '(':
case '[':
case '{':
p.push(s[i]);
break;
case ')':
if (!p.size())
return false;
temp = p.top();
p.pop();
if (temp != '(')
return false;
break;
case ']':
if (!p.size())
return false;
temp = p.top();
p.pop();
if (temp != '[')
return false;
break;
case '}':
if (!p.size())
return false;
temp = p.top();
p.pop();
if (temp != '{')
return false;
break;
}
}
if (!p.size())
return true;
return false;
}
};