您的位置:首页 > 其它

LeetCode - 20 - Valid Parentheses

2017-07-19 09:45 369 查看
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.
利用栈模拟,时间复杂度O(n),空间复杂度O(n)

class Solution {
public:
bool isValid(string s) {
stack<char> ans;
if (s == "" || s.length() % 2) return false;
for (int i = 0; i < s.length(); ++i) {
switch (s[i]) {
case '(':
case '{':
case '[': ans.push(s[i]); break;
case ')':
if (ans.empty()) return false;
if (ans.top() == '(') ans.pop();
else ans.push(s[i]);
break;
case '}':
if (ans.empty()) return false;
if (ans.top() == '{') ans.pop();
else ans.push(s[i]);
break;
case ']':
if (ans.empty()) return false;
if (ans.top() == '[') ans.pop();
else ans.push(s[i]);
break;
}
}
if (ans.empty()) return true;
return false;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: