题目描述:
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.
stack<char> char_stack;
for(int i = 0;i < s.length();i++)
{
if(s[i] == '(' || s[i] == '{' || s[i] == '[')
char_stack.push(s[i]);
else
{
if(char_stack.empty())
return false;
char top = char_stack.top();
char_stack.pop();
if(s[i] == ')' && top == '(')
continue;
else if(s[i] == '}' && top == '{')
continue;
else if(s[i] == ']' && top == '[')
continue;
else
return false;
}
}
if(char_stack.empty())
return true;