Daily LeetCode Challenge - 20. Valid Parentheses

Min Young Kim·2023년 4월 10일
0

algorithm

목록 보기
117/198

Problem From.
https://leetcode.com/problems/valid-parentheses/

오늘 문제는 주어진 string 이 올바른 괄호인지 아닌지 반환하는 문제였다.

이 문제는 stack 을 사용하여 풀었는데, 여는 괄호가 나오면 stack 에 집어넣고, 닫는 괄호가 나오면 stack 에서 하나의 원소를 뺀 뒤, 닫는 괄호와 매치되지 않는다면 false 를 반환해주었다.

import java.util.Stack

class Solution {
    fun isValid(s: String): Boolean {
        
        val stack = Stack<Char>()
        
        s.forEach {
            when {
                it == ')' -> {
                    if(stack.isEmpty()) return false
                    if(stack.peek() != '(') return false
                    stack.pop()
                }
                it == '}' -> {
                    if(stack.isEmpty()) return false
                    if(stack.peek() != '{') return false
                    stack.pop()
                }
                it == ']' -> {
                    if(stack.isEmpty()) return false
                    if(stack.peek() != '[') return false
                    stack.pop()
                }
                else -> stack.push(it)
            }
        }
        
        if(stack.isNotEmpty()) return false
        
        return true
    }
}
profile
길을 찾는 개발자

0개의 댓글