Daily LeetCode Challenge - 1047. Remove All Adjacent Duplicates In String

Min Young Kim·2022년 11월 10일
0

algorithm

목록 보기
28/198

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) 이 된다.

profile
길을 찾는 개발자

0개의 댓글