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(''));