上节我们实现了圆括号的匹配
但实际上我们可以实现任意多种括号的匹配。
考虑这样的匹配 {[](){}[]()} 。我们只需要在弹出栈的时候判断一下对应关系即可
/*
通用括号匹配
*/
function generalBracketBalanced(str) {
var stack = new Stack();
var types = {
"(": ")",
"[": "]",
"{": "}"
};
var temp = "";
for(var i=0; i<str.length; ++i) {
if(str[i] in types) {
stack.push(str[i]);
} else {
temp = stack.pop();
if(types[temp] != str[i]) {
return false;
}
}
}
return stack.isEmpty();
}
console.log(generalBracketBalanced("[]{}()[(){}]"));
console.log(generalBracketBalanced("[[]{}()[(){}]"))
console.log(generalBracketBalanced("{{}{[]()}}"));