• [简单-20.有效的括号]


    [简单-20.有效的括号]

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

    有效字符串需满足:

    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。

    示例 1:
    输入: "()"
    输出: true
    
    示例 2:
    输入: "()[]{}"
    输出: true
    
    示例 3:
    输入: "(]"
    输出: false
    
    示例 4:
    输入: "([)]"
    输出: false
    
    示例 5:
    输入: "{[]}"
    输出: true
    

    方法1:使用栈,遇到左括号进行压栈操作,右括号弹栈操作。然后在对一下特殊情况进行处理

    class Solution {
    public:
        bool isValid(string s) {
            int size = s.size();
            if (size == 0) return true;
            if ((s[0] == ')') || (s[0] == '}') || (s[0] == ']')) return false;
            stack<char>st;
            for (int i = 0; i<size; i++) {
                if ((s[i] == '(') || (s[i] == '[') || (s[i] == '{')) {
                      st.push(s[i]);
                }
                if (st.empty()) return false;
                if (s[i] == ')') {
                    if (st.top() == '(') {
                        st.pop();
                    } else {
                        return false;
                    }
                }
                if (s[i] == ']') {
                    if (st.top() == '[') {
                        st.pop();
                    } else {
                        return false;
                    }
                }
                if (s[i] == '}') {
                    if (st.top() == '{') {
                        st.pop();
                    } else {
                        return false;
                    }
                }
            }
            if (st.size() != 0) return false;
            return true;
        }
    };
    
  • 相关阅读:
    BZOJ 1013: [JSOI2008]球形空间产生器sphere
    BZOJ 1012: [JSOI2008]最大数maxnumber
    BZOJ 1011: [HNOI2008]遥远的行星
    BZOJ 1008: [HNOI2008]越狱
    BZOJ 1007: [HNOI2008]水平可见直线
    BZOJ 1003: [ZJOI2006]物流运输
    Spark core 总结
    SparkRDD算子(transformations算子和actions算子)
    SparkRDD算子初识
    初识Spark
  • 原文地址:https://www.cnblogs.com/wangdongfang/p/13664016.html
Copyright © 2020-2023  润新知