圓括號平衡,這裏可以看相關的問題描述
主要關心代碼的實現,
/*平衡圓括號*/
function isBracketBalanced(str) {
/*
@str:圓括號字符串,比如
"()()" "(()()())" 平衡
"(()" 非平衡, 左括號較多
"(()))))" 非平衡,右括號較多
*/
var pattern = /^(\(|\))*$/;
if(!pattern.test(str)) {
throw new Error("Your parameter can only include () character");
}
var stack = new Stack();
for(var i=0; i<str.length; ++i) {
if(str[i] == "(") {
stack.push("(");
}else {
if(!stack.pop()){
return false;
}
}
}
return stack.isEmpty();
}
console.log(isBracketBalanced("()()")); //true
console.log(isBracketBalanced("()())")); // false
console.log(isBracketBalanced("((()")); // false
console.log(isBracketBalanced("fafa")); // throw error