有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串 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
    };
相关推荐
奋斗吧程序媛10 分钟前
Vue Router的路由模式
前端·javascript·vue.js
by__csdn11 分钟前
Vue.js 生命周期全解析:从创建到销毁的完整指南
前端·javascript·vue.js·前端框架·ecmascript·css3·html5
m0_4711996320 分钟前
【JavaScript】前端如何处理服务端部分接口加解密
开发语言·前端·javascript
学学学无无止境22 分钟前
力扣-从前序与中序遍历序列构造二叉树
leetcode
离别又见离别38 分钟前
vue使用js渲染组件案例(公用打印组件动态渲染)及静默打印实现
前端·javascript·vue
CoderYanger1 小时前
第 479 场周赛Q1——3769. 二进制反射排序
java·数据结构·算法·leetcode·职场和发展
sin_hielo1 小时前
leetcode 1925
数据结构·算法·leetcode
CoderYanger1 小时前
A.每日一题——1925. 统计平方和三元组的数目
java·开发语言·数据结构·算法·leetcode·哈希算法
小白程序员成长日记1 小时前
2025.12.08 力扣每日一题
java·算法·leetcode