20. 有效的括号

题目

  • 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
    有效字符串需满足:
    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    每个右括号都有一个对应的相同类型的左括号。

示例 1:

输入:s = "()[]{}"

输出:true

示例 2:

输入:s = "(]"

输出:false

题解:栈

  • 遇到一个左括号,把对应的右括号推入栈,遇到一个右括号出栈,如果不一样就false
var isValid = function(s) {
    if(s.length %2 != 0) return false//奇数返回false
    const res = []
    for (let i=0;i<s.length;i++){
        if(s[i]=='('){
            res.push(')')
        }else if(s[i]=='['){
            res.push(']')
        }else if(s[i]=='{'){
            res.push('}')
        }else if(s[i]==')' || s[i]==']' || s[i]=='}'){
            const a = res.pop()
            if(a!=s[i]) return false
        }
    }
    if(res.length != 0) return false//最后处理完栈不为空:‘((’
    return true
};
posted @ 2025-03-08 09:11  Frommoon  阅读(15)  评论(0)    收藏  举报