https://leetcode.com/problems/valid-parentheses/description
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()"
Output: true
Example 2:
Input: "()[]{}"
Output: true
Example 3:
Input: "(]"
Output: false
Example 4:
Input: "([)]"
Output: false
Example 5:
Input: "{[]}"
Output: true
/**
* @params{string} s
* @return{boolean}
*/
function isValid(s) {
let stack = [];
const obj = {
"{": "}",
"[": "]",
"(": ")"
};
const preArr = ["[", "{", "("];
const arr = s.split("");
for (let i = 0; i < arr.length; i++) {
const cur = arr[i];
if (preArr.indexOf(cur) > -1) {
// 当有前置符号 =》 入栈
stack.push(cur);
} else {
const out = stack.pop();
// 当前的值不匹配于前一个塞进栈的值就返回false
if (cur !== obj[out]) {
return false;
}
}
}
if (stack.length === 0) {
return true;
}
return false;
}