原题链接:leetcode10
题目描述:给定一个字符串,字符串中包括中括号,小括号,大括号,判断这个字符串中的括号是否有效
思路:
由于不同括号之间是有顺序的 例如([)]也是无效的
所有 利用栈的特点 先进后出特点处理
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function (s) {
let len = s.length
if (len == 0) return true
let stack = []
let left = ['(', '[', '{']
let map = new Map([
[')', '('],
[']', '['],
['}', '{']
])
for (let i = 0; i < len; i++) {
debugger
if (left.includes(s[i])) {
stack.push(s[i])
} else {
if (map.get(s[i]) != stack.pop())
return false
}
}
return stack.length == 0 ? true : false
};
let s = '()'
console.log(isValid(s))