题目描述:
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
accepted code with c++:
class Solution {
public:
bool isValid(string s) {
stack<char> parenthese;
bool flag = true;
for(int i = 0;i < s.size(); i++)
{
if(s[i] == '('||s[i] == '['||s[i] == '{')
parenthese.push(s[i]);
if(s[i] == ')'||s[i] == ']'||s[i] == '}')
{
if(!parenthese.empty())
{
if(isPair(parenthese.top(),s[i]) )
{
parenthese.pop();
}
else
{
flag = false;
break;
}
}
else
{
flag = false;
break;
}
}
}
if(!parenthese.empty())
flag = false;
return flag;
}
bool isPair(char s1, char s2)
{
if((s1 == '(' &&s2 == ')') ||(s1 == '[' &&s2 == ']') ||(s1 == '{' &&s2 == '}'))
return true;
else
return false;
}
};