您的位置:首页 > 其它

[LeetCode]20. Valid Parentheses

2017-09-05 11:27 405 查看
20. Valid Parentheses

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.

括号匹配的问题,用栈即可,左括号入栈,右括号则出栈比较是否匹配。最后记得检查栈是否为空。

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