解题思路:
用栈来存储未匹配的左括号,从左到右依次遍历字符串,当遇到左括号时,则将其压入栈中,若是某个右括号,从栈顶取出一个左括号,如果能够与这个右括号匹配,则继续遍历,如果不能够匹配,或者栈中没有元素,则说明是无效的字符串,当遍历完成之后,如果栈为空,则是有效字符串,否则是无效的字符串。
var isValid = function(s) {let map = {'(':')','{':'}','[':']'}let stack = [];for(let v of s){if(map[v]){stack.push(v);}else if(map[stack.pop()]!== v){return false}}return stack.length === 0;};// 时间复杂度 o(n)// 空间复杂度 o(n)
