// 判断一个算术表达式中的括号是否匹配; functionparenthesesChecker(symbols) { const stack = new Stack(); const opens = "([{"; const closers = ")]}"; let balanced = true; let index = 0; let symbol; let top;
while (index < symbols.length && balanced) { symbol = symbols[index]; if (opens.indexOf(symbol) >= 0) { stack.push(symbol); } elseif (stack.isEmpty()) { balanced = false; } else { top = stack.pop(); if (!(opens.indexOf(top) === closers.indexOf(symbol))) { balanced = false; } } index++; } return balanced && stack.isEmpty(); }