반응형

 

인자로 받은 문자열 중 나란히 있는 중복문자를 반복적으로 제거하고, 남은 문자열을 반환하는 문제입니다.

위 예제를 보면 아래와 같이 처리가 흐르게 됩니다.

 

1. abbaca -> bb 제거

2. aaca -> aa 제거

3. ca 반환

 

저는 아래와 같이 풀이하였습니다.

 

class Solution:
    def removeDuplicates(self, S: str) -> str:
        stack = []
        stack.append(S[0])

        for i in S[1:]:
            if stack and stack[-1] == i:
                stack.pop()
            else:
                stack.append(i)
        return ''.join(stack)

 

stack으로 이용할 list를 하나 만들었습니다.

그 후, 문자열을 iterate하며 stack에서 peek한 결과와 동일하면 pop 아니면 append 하였습니다.

 

감사합니다.

반응형

'Algorithm > DataStructure' 카테고리의 다른 글

leetcode - Tree - Maximum Depth of Binary Tree  (0) 2020.03.24
leetcode - Tree - Symmetric Tree  (0) 2020.03.23
leetcode - Tree - Same Tree  (0) 2020.03.19
leetcode - Stack - Min Stack  (1) 2020.03.13
leetcode - Stack - Valid Parentheses  (0) 2020.03.13

+ Recent posts