Valid Parentheses

SungJunEun·2021년 12월 10일
0

Codewars 문제풀이

목록 보기
26/26
post-thumbnail

Description:

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

Examples

"()"              =>  true
")(()))"          =>  false
"("               =>  false
"(())((()())())"  =>  true

My solution:

function validParentheses(parens) {
  const object = {
    ')': "(",
    '(' : 'something else'
  }
  const array = parens.split('');
  const result = array.reduce(function(acc,cur){
    if(acc[acc.length-1] === object[cur]) {
      acc.pop();
    } else {
      acc.push(cur);
    }
    return acc;
  },[]);

  return (result.length == 0) ? true : false;
}

Best solutions:

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;
}
  1. 만약에 ) 의 갯수가 ( 를 넘을시 바로 false 를 반환한다.

  2. ( 갯수와 ) 갯수가 같을 때만 true 를 반환한다.

profile
블록체인 개발자(진)

0개의 댓글