Problem From.
https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/
오늘 문제는 주어진 String 에서 연속된 글자가 있다면 계속 제거하여, 더 이상 제거할 수 없을 때 그 String 을 반환하는 문제였다.
Stack 을 사용하여, 글자를 넣기전에 검사해서 같은 글자면 stack 을 pop 시키고 아니면 집어넣는 방식을 사용하였다.
class Solution {
fun removeDuplicates(s: String): String {
val stack = Stack<Char>()
s.forEach {
if(!stack.isEmpty() && stack.peek() == it) {
stack.pop()
}else {
stack.push(it)
}
}
return String(stack.toCharArray())
}
}
위 풀이의 시간복잡도는 O(N) 이 된다.