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