leetcode有效的括号

92 阅读1分钟

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

有效字符串需满足:

左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。  

示例 1: 输入:s = "()" 输出:true

示例 2: 输入:s = "()[]{}" 输出:true

示例 3: 输入:s = "(]" 输出:false

示例 4: 输入:s = "([)]" 输出:false

示例 5: 输入:s = "{[]}" 输出:true

var isValid = function(s) {
     while(s.length){
        let temp = s
        s=s.replace('()', '');
        s=s.replace('{}', '');
        s=s.replace('[]', '');
        if(s === temp) return false
     }
     return true
};

推荐使用stack结构

 let stack = []
    for(let i=0; i<s.length; i++){
        let c = s[i];
        switch(c) {
            case '(':
                stack.push(')');
                break
            case '[':
                stack.push(']');
                break
            case '{':
                stack.push('}');
                break
            default:
                if(c !== stack.pop()){
                    return false
                }
        }
    }
    return stack.length === 0