Lintcode C++代码

来源:互联网 发布:盛势网络剧视频第四集 编辑:程序博客网 时间:2024/06/07 09:55

给定一个字符串所表示的括号序列,包含以下字符: ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, 判定是否是有效的括号序列。

主要用用到堆栈 操作
不熟悉的小伙伴,自己恶补!
以下是一位博主的的代码;

思路:
1 如果是左半部分,进栈
2 右半部分,栈顶元素出栈,判断是否对应,对应删除该元素,否则返回false

class Solution {public:    /**     * @param s A string     * @return whether the string is a valid parentheses     */    bool isValidParentheses(string& s) {        // Write your code here        int n = s.length();        stack<char> buf;        for (int i = 0; i <n; i++) {            if (s[i] == '(' || s[i] == '{' || s[i] =='[') {                buf.push(s[i]);                }            else if (s[i] == ')') {                if (!buf.empty() && buf.top() == '(') {                    buf.pop();                }                else {                    return false;                }            }            else if (s[i] == '}') {                if (!buf.empty() && buf.top() == '{') {                    buf.pop();                }                else {                    return false;                }            }            else if (s[i] == ']') {                if (!buf.empty() && buf.top() == '[') {                    buf.pop();                }                else {                    return false;                }            }        }        return buf.empty();    }};
原创粉丝点击