From d56b6bbee112466b08373e624945306a49caeefa Mon Sep 17 00:00:00 2001 From: = <--gbloal> Date: Wed, 22 May 2024 18:15:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9C=89=E6=95=88=E7=9A=84=E6=8B=AC?= =?UTF-8?q?=E5=8F=B7(20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- leetcode/简单/有效的括号.js | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 leetcode/简单/有效的括号.js diff --git a/leetcode/简单/有效的括号.js b/leetcode/简单/有效的括号.js new file mode 100644 index 0000000..4f1ba4a --- /dev/null +++ b/leetcode/简单/有效的括号.js @@ -0,0 +1,52 @@ +/* + +20. 有效的括号 +简单 + +相关标签 +相关企业 + +提示 +给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 + +有效字符串需满足: + +左括号必须用相同类型的右括号闭合。 +左括号必须以正确的顺序闭合。 +每个右括号都有一个对应的相同类型的左括号。 + +示例 1: + +输入:s = "()" +输出:true +示例 2: + +输入:s = "()[]{}" +输出:true +示例 3: + +输入:s = "(]" +输出:false + +*/ + +/** + * @param {string} s + * @return {boolean} + */ +const isValid = function (s) { + const len = s.length; + const task = [s.charAt(0)]; + for (let i = 1; i < len; i++) { + const pre = task.pop(); + const cur = s.charAt(i); + const ss = pre + cur; + if (ss !== '()' && ss !== '[]' && ss !== '{}') { + if (pre) task.push(pre); + task.push(cur); + } + } + return task.length === 0; +}; + +console.log(isValid(''));