//JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
// '{}[]()','{[(}{})]}','[}' 匹配返回ture 反之false
// 括号匹配 最后一个左括号一定是要闭合状态( 他的后面一定跟着右括号)
// 最后一个出现的括号第一个闭合
//流程 遍历每一个字符,如果是左括号加入到stack中,
//如果是右括号和stack的最后一个元素结合如果是闭合状态,把stack数组内的最后一个元素移除
//如果不匹配 返回 false
// 知道循环结束
function check(str){
var stack = [], flag = true
str.split('').forEach(item=>{
if(item == '{' || item == '[' || item == '(') {
stack.push(item)
return
}
var concatStr = stack[stack.length - 1] + item
if (concatStr == "{}" || concatStr == "[]" || concatStr == "()"){
stack.pop()
}else{
flag = false
}
})
return flag
}
console.log(check('{[()()]}'))