zoukankan      html  css  js  c++  java
  • lintcode-423-有效的括号序列

    423-有效的括号序列

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

    样例

    括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。

    标签

    栈 谷歌

    思路

    使用栈进行括号匹配,遍历括号串,遇到左括号 '(' , '{' 和 ']' 则将其入栈,遇到右括号 ')', '}' 和 ']' 则与栈顶元素匹配,若括号匹配,弹出栈顶元素并继续匹配,否则匹配出错;
    若括号串遍历结束,此时栈中还有元素,表示有左括号无法比配,匹配出错,否则所有括号已经正确匹配。

    code

    class Solution {
    public:
        /*
         * @param s: A string
         * @return: whether the string is a valid parentheses
         */
        bool isValidParentheses(string s) {
            // write your code here
            int size = s.size();
            if (size <= 0) {
                return true;
            }
            stack<char> stack;
            for (int i = 0; i < size; i++) {
                if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
                    stack.push(s[i]);
                }
                else if (s[i] == ')' || s[i] == ']' || s[i] == '}') {
                    char top = stack.top();
                    if ((s[i] == ')' && top == '(') || (s[i] == ']' && top == '[') || (s[i] == '}' && top == '{')) {
                        stack.pop();
                    }
                    else {
                        return false;
                    }
                }
            }
            if (!stack.empty()) {
                return false;
            }
            return true;
        }
    };
    
  • 相关阅读:
    WCF ria services完美登陆功能(10)
    利用DYCOM快速建立wcf服务器端
    DYCom简要介绍
    断剑
    生命的价值
    飞翔的蜘蛛
    JSP中如何获取select标签选中的值
    wrapClass
    iconfont 在vue项目中的应用(iconcomponent组件)
    正则表达式
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7376195.html
Copyright © 2011-2022 走看看