您的位置:首页 > 其它

20. Valid Parentheses

2016-11-07 00:10 218 查看
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.

思路:如果字串是 "(" or "{" or "[" 都先放到Stack 中,等到下一個如果是 ")" or "}" or "]" 就從Stack pop出來比對是不是配對的括號

 class Solution {
public:
bool isValid(string s) {
stack<char> _stack;

for(int index = 0; index < s.size() ; index++) {
if(s.at(index) == '(' || s.at(index) == '[' || s.at(index) == '{') {
_stack.push(s.at(index));
}

if(s.at(index) == ')') {
if(_stack.size()==0 || _stack.top() != '(') {
return false;
} else {
_stack.pop();
}
}

if(s.at(index) == ']') {
if(_stack.size()==0 ||_stack.top() != '[') {
return false;
} else {
_stack.pop();
}
}

if(s.at(index) == '}') {
if(_stack.size()==0 ||_stack.top() != '{') {
return false;
} else {
_stack.pop();
}
}
}

return _stack.size() == 0? true:false;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Easy leecode