toy 알고리즘 17

이영광·2021년 8월 11일
0

알고리즘

목록 보기
6/16
const braket = function (str) {
  const stack = [];
  const open = {
    '{': '}',
    '[': ']',
    '(': ')',
  };
  const close = '}])';

  for (let i = 0; i < str.length; i++) {
    if (str[i] in opener) {
      stack.push(str[i]);
    } else if (close.includes(str[i])) {
      const top = stack.pop();
      const pair = open[top];
      if (pair !== str[i]) {
        return false;
      }
    }
  }

  return stack.length === 0;
};

괄호는 먼저 열리고((), 열린만큼만 닫혀야()) 합니다.

if in 문 === 객체 일경우 예를들어 if(str[i] in opener) 라는 이프문을 만났을때

str[i] = 객체의 키를 가르키게 된다

있을경우 스택에 푸쉬한다 없을경우 클로저(close) 에 있는가 확인하후 있다면 스택에서

팝을 해온후 그것의 값을 stri 와 비교해 같지않다면 false가된다 같다면 오프너와 클로저가 있기때문에 트루를 반환한다

profile
《REACT》《JAVASCRIPT 》 만지고있어욤

0개의 댓글