给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串 s
,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = "()" 输出:true
示例 2:
输入:s = "()[]{}" 输出:true
示例 3:
输入:s = "(]" 输出:false
/*** @param {string} s* @return {boolean}*/
var isValid = function (s) {if (s.length == 0 || s.length % 2 == 1) return false;let map = new Map();map.set(")", "(");map.set("}", "{");map.set("]", "[");let stack = new Array();for (let i = 0; i < s.length; i++) {let top_index = stack.length - 1;let top = stack[top_index] ? stack[top_index] : -1;if (top == map.get(s[i])) {stack.pop();} else {stack.push(s[i]);}}return stack.length ? false : true;
};