有效的括号

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例 :

输入:s = "()"

输出:true

示例 2:

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

输出:true

示例 3:

输入:s = "(]"

输出:false

解法一:

js 复制代码
    const isValid = function (s) {
        if (s.length % 2 === 1) return false
        let i=0,n=s.length/2
        while (i<n){
            s=s.replace('{}','')
            s=s.replace("()",'')
            s=s.replace("[]",'')
            i++
        }
        return s === ''
    };

解法二:

js 复制代码
    const isValid = function (s) {
        if (s.length % 2 === 1) return false
        let i=0,n=s.length/2
        for (let j = 0; j < n; j++) {
            s=s.replace('{}','')
            s=s.replace("()",'')
            s=s.replace("[]",'')
            i++
        }
        return s === ''
    };

解法三:

js 复制代码
    const isValid = function (s) {
        if (s.length % 2 === 1) return false;
        let stack = [], map = {")":"(","}":"{","]":"["};
        for (const ch of s) {
            if (map[ch]){
                if (!stack.length || stack[stack.length-1]!==map[ch]) return false
                stack.pop()
            } else {
                stack.push(ch)
            }
        }
        return !stack.length
    };
相关推荐
\xin3 小时前
pikachu自编exp,xss反射性get,post,存储型xss,dom,dom-x
前端·javascript·xss
加农炮手Jinx7 小时前
LeetCode 72. Edit Distance 题解
算法·leetcode·力扣
_深海凉_7 小时前
LeetCode热题100-打家劫舍
算法·leetcode·职场和发展
宁雨桥14 小时前
深入理解 async/await的原理
前端·javascript·es8
心连欣14 小时前
轮播图实战:用Web API玩转元素属性操作
前端·javascript·api
菜鸟丁小真14 小时前
LeetCode hot100 -73.矩阵置零
数据结构·leetcode·矩阵·知识点总结
剑神一笑15 小时前
从 JSON.parse 到树形视图:实现一个在线 JSON 格式化工具
前端·javascript·json
淸湫15 小时前
JavaScript常用正则表达式大全
前端·javascript
We་ct15 小时前
LeetCode 64. 最小路径和:动态规划入门实战
开发语言·前端·算法·leetcode·typescript·动态规划
最炫的美少女战士16 小时前
claude code 安装报错claude native binary not installed.
javascript