有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串 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
    };
相关推荐
Rysxt_9 分钟前
Vue 3 项目核心:App.vue 文件的作用与配置详解
前端·javascript·vue.js
imkaifan19 分钟前
10、vue3中针对图片的处理
前端·javascript·vue.js
Binky67826 分钟前
力扣--贪心篇(1)
数据结构·算法·leetcode
invicinble29 分钟前
对于使用html去进行前端开发的全面认识,以及过度到vue开发
前端·javascript·vue.js
csdn_aspnet30 分钟前
C# 结合 JavaScript 实现手写板签名并上传到服务器
javascript·c#
watersink31 分钟前
Agent 设计模式
开发语言·javascript·设计模式
han_35 分钟前
前端性能优化之性能瓶颈点,Web 页面加载全流程解析
前端·javascript·性能优化
C_心欲无痕36 分钟前
vue3 - toRefs将响应式对象转换为普通对象
前端·javascript·vue.js
小oo呆37 分钟前
【自然语言处理与大模型】LangChainV1.0入门指南:AgentState介绍
前端·javascript·easyui
我是伪码农44 分钟前
电子时钟案例
javascript·css·css3