gpt4 book ai didi

javascript - 有效括号故障排除

转载 作者:行者123 更新时间:2023-12-04 15:03:13 26 4
gpt4 key购买 nike

我正在处理一个涉及有效括号的编码挑战,我正在尝试解决它没有给我预期响应的原因。

 function isValid(str) {

if (str.length === 0)
return true

let matchingOpeningBracket, char
let stack = []

let openingBrackets = ['[', '<', '(']
let closingBrackets = [']', '>', ')']

for (let i = 0; i < str.length; i++) {
char = str[i]

if (closingBrackets.indexOf(char) > -1) {
matchingOpeningBracket = openingBrackets[closingBrackets.indexOf(char)]
if (stack.length == 0 || (stack.pop() != matchingOpeningBracket)) {
return false
}
} else {
stack.push(char)
}
}

return (stack.length == 0)
};

当我尝试检查 console.log(isValid('---(++++)---')) 和 console.log(isValid('before(middle[])after')) 它给出我是一个错误的值,但根据挑战键,它应该被传递为真实值。我不确定我错过了什么步骤。除了前 2 个之外,其他测试示例都按预期进行记录,如此处所示。

//true // returns false
// let example1 = ("before(middle[])after")
//true //returns false
// let example1 = ("---(++++)---")
//true
// let example1 = ("")
//false
// let example1 = (")(")
//false
// let example1 = ("<(>)")
//true
// let example1 = ("([<>()])")
//false
// let example1 = ("([)")

最佳答案

当您应该忽略既不是左括号也不是右括号的字符时,您正在将不是右括号的所有内容压入堆栈。将您的其他条件更改为此:

else if (openingBrackets.indexOf(char) > -1) {

关于javascript - 有效括号故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66617153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com