【算法】栈 2021-10-21 实际应用平衡符号应用:编译器语法检查 12"[{()}]" => true"[{(}]" => false 12345678910111213141516171819202122232425function check(str) { console.log(str) const obj = { "[": "]", "<": ">", "{": "}", }; const zhan = []; for (let i = 0; i < str.length; i++) { const s = str[i] if (["<", "[", "{"].includes(s)) { zhan.push(s); } if ([">", "]", "}"].includes(s)) { if (zhan.length === 0) { return false } const pop = zhan.pop(); if (s !== obj[pop]) { return false } } } return zhan.length === 0 || true} test 12345678check('}') // ==> falsecheck('{') // ==> falsecheck('{}') // ==> truecheck('{<}') // ==> falsecheck('{<>}') // ==> truecheck('{<[>}') // ==> falsecheck('{<[]>}') // ==> truecheck('{<[>]}') // ==> false 最后更新: 2022年05月25日 17:05