解题思路
判断括号的有效性可以使用【栈】这一数据结构来解决
我们对给定字符串进行遍历,当遇到一个左括号的时候,期望可以在后续的遍历中得到一个相对应的闭合括号, 此时我们需要定义一个哈希表,我们可以使用哈希表存储每一种括号。哈希表的键为右括号,值为相同类型的左括号。
在遍历结束后,如果栈中没有左括号,说明我们将字符串 ss 中的所有左括号闭合,返回 True,否则返回 False。
var isValid = function(s) {
const n = s.length
if(n % 2 === 1) return false
const pairs = new Map([
[')', '('],
[']', '['],
['}', '{']
])
const task = []
for(let ch of s) {
if(pairs.has(ch)) {
if(!task.length || task[task.length -1] !== pairs.get(ch)) {
return false
}
task.pop()
} else {
task.push(ch)
}
}
return !task.length
};