题目描述:
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;原文地址:http://blog.csdn.net/yao_wust/article/details/41243231