题目描述:
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