我写检查括号中的逻辑“(”和“)”括号的时候都混合但似乎有一个问题。这是因为我只是比较总的括号计数。找到一个字符串缺少大括号的JavaScript
这是我写的
function checkParanthesis(str){
var depth=0;
for(var i in str){
if(str[i] == "(" || str[i] == "{" || str[i] == "[")
depth++;
else if(str[i] == ")" || str[i] == "}" || str[i] == "]")
depth--;
}
if(depth !==0) return false;
return true;
}
console.log(checkParanthesis("() test"));
问:
但我怎么能检查多个括号元素? (){} []
例如,
输入:
"[(]) abcd" // should return false
"[{()}] test" // should return true
应该返回false(不是真的)
最后一条语句是多余的,一个简单的检查,如果值是'!== 0'就足够了。 –
更正!谢谢@RyanMcCullagh – TechnoCorner
你必须跟踪开头的大括号,这样你就可以确定一个关闭的对应于最近仍然开放的。 – Ryan