JavaScript 实现括号匹配问题

Description:

Write a function called validParentheses that takes a string of parentheses, and determines if the order of the parentheses is valid. validParentheses should return true if the string is valid, and false if it's invalid.

Examples:

console.log(validParentheses( "()" ) );             // true 
console.log(validParentheses( ")(()))" ));          // false
console.log(validParentheses( "(" ));               // false 
console.log(validParentheses( "(())((()())())" ));  //true 

my answer

function validParentheses(parens){
  var n = 0;
  for (var i = 0; i < parens.length; i++) {
    if (parens[i] == '(') n++;
    if (parens[i] == ')') n--;
    if (n < 0) return false;
  }
  return n == 0;
}

best answer

function validParentheses(parens){
  while(/\(\)/.test(parens)){
    parens = parens.replace(/\(\)/g,"");
  }
  return parens.length>0?false:true;  
}
posted @ 2017-09-05 20:22  芒果夏夏  阅读(2188)  评论(0编辑  收藏  举报