算法 | 判断大括号是否闭合

1,329 阅读1分钟

创建一个函数来判断给定的表达式中的大括号是否闭合。

var expression = "{{}}{}{}"var expressionFalse = "{}{{}";isBalanced(expression); // trueisBalanced(expressionFalse); // falseisBalanced(""); // true

示例:


function isBalanced(expression) {  var checkString = expression;  var stack = [];

  // If empty, parentheses are technically balanced  if (checkString.length <= 0) return true;

  for (var i = 0; i < checkString.length; i++) {    if (checkString[i] === '{') {      stack.push(checkString[i]);    } else if (checkString[i] === '}') {      // Pop on an empty array is undefined      if (stack.length > 0) {        stack.pop();      } else {        return false;      }    }  }

  // If the array is not empty, it is not balanced  if (stack.pop()) return false;  return true;}