我有以下代码:
var isValid = function(s) {
let arr = [...s];
arr.reduce((acc, cur) => {
console.log(`arr in reduce: ${arr}`);
console.log(`acc: ${acc}`);
console.log(`cur: ${cur}`);
if ((acc && cur)
&& (
(acc === '(' && cur === ')')
|| (acc === '{' && cur === '}')
|| (acc === '[' && cur === ']')
)) {
arr.splice(arr.indexOf(acc), 2);
console.log(`arr after splice: ${arr}`);
return arr;
}
else {
console.log(`else statement: ${cur}`);
return cur;
}
});
return arr.length === 0 ? true : false;
};
console.log(isValid("()[]{}"));
如果满足以下条件,则需要返回true:
开括号必须用相同类型的括号封闭。
开括号必须以正确的顺序关闭。
我的代码未通过此测试"()[]{}"
:它总是返回[,]
并且我不明白为什么。我已经尝试使用正则表达式,anscii作为方括号,但是它不起作用。
牛魔王的故事
相关分类