Valid Parentheses

김현민·2021년 11월 21일
0

Algorithm

목록 보기
113/126
post-thumbnail

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function (s) {
  let st = []

  let tt = [...s]
  let answer = true
  let size = tt.length

  while (size--) {
    let out = tt.shift()

    if (out === "(" || out === "{" || out === "[") {
      st.push(out)
    } else {
      if (st[st.length - 1] === "(") {
        if (out === ")") {
          st.pop()
        } else {
          answer = false
          break
        }
      } else if (st[st.length - 1] === "{") {
        if (out === "}") {
          st.pop()
        } else {
          answer = false
          break
        }
      } else if (st[st.length - 1] === "[") {
        if (out === "]") {
          st.pop()
        } else {
          answer = false
          break
        }
      } else {
        answer = false
      }
    }
  }

  if (st.length === 0) return answer
  else return (answer = false)
}

// isValid("()")
console.log('isValid("()"): ', isValid("["))
// console.log('isValid("()"): ', isValid("]"))
// console.log('isValid("()"): ', isValid("(]"))
// console.log('isValid("()"): ', isValid("()[]{}"))
// console.log('isValid("()"): ', isValid("([)]"))
// console.log('isValid("()"): ', isValid("{[]}"))

왼쪽 괄호들은 모두 넣고,
오른쪽 괄호일 경우 짝에 맞는 조건을 걸어 검사를 진행함

profile
Jr. FE Dev

0개의 댓글