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;  
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM