在算法题20有效的括号中,以下代码运行测试用例没有通过的原因在哪里
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function (s) {
// 若括号数是奇数,一定有不匹配的括号
if (s.length % 2 == 1) return false;
// 使用栈匹配括号
let stack = [];
// 遍历s,若遍历到左括号就把右括号放进stack里面
for (let i = 0; i < s.length; i++) {
if (s[i] == '(') stack.push(')')
else if (s[i] == '{') stack.push('}')
else if (s[i] == '[') stack.push(']')
// 若stack为空或者stack栈顶元素与当前括号不匹配就不是有效括号
if (stack.length == 0 || stack.pop !== s[i]) { return false }
else stack.pop();
}
// 遍历完s里面还有,就不是有效括号
return !stack.length
};