20-有效括号
leetcode : https://leetcode-cn.com/problems/valid-parentheses/
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。
思路
使用map结构来存储字符串
1、遇到左括号,一律推入栈中, 2、遇到右括号,将栈顶部元素拿出,如果不匹配则返回 false,如果匹配则继续循环。
var isValid = function (s) {
let map = {
'(': -1,
')': 1,
'[': -2,
']': 2,
'{': -3,
'}': 3,
};
let stack = [];
for (let i = 0; i < s.length; i++) {
if (map[s[i]] < 0) {
stack.push(s[i]);
} else {
let last = stack.pop();
if (map[last] + map[s[i]] != 0) return false;
}
}
if (stack.length > 0) return false;
return true;
};
console.log(isValid('()[]{}'));