본문 바로가기
카테고리 없음

[알고리즘] Remove All Adjacent Duplicates in String II

by keel_im 2021. 4. 16.
반응형

포인트

  • 중복되는 문자 (K 횟수를 반복하는 문자) 를 어떻게 제거를 해 나갈 수 있는가?를 묻는 문제입니다.
  • 저는 처음 생각을 할때, 무한으로 반복을 해나가면서 없을 때까지,
  • find(), replace() 를 하는 방법으로 사용하려고 했으나 생각보다 힘듬을 느꼈습니다. 그래서 스택에 카운트를 같이 저장하는 방식으로 변경하여 처리했습니다. 

🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. 

python

class Solution:
     def removeDuplicates(self, s, k):
        stack = []
        for char in s:
            if stack and stack[-1][0] == char:
                stack[-1][1] += 1
                if stack[-1][1] == k:
                    stack.pop()
            else:
                stack.append([char, 1])
        return ''.join(c * k for c, k in stack)




s = Solution()
print(s.removeDuplicates(s = "abcd", k = 2))
print(s.removeDuplicates(s = "deeedbbcccbdaa", k = 3))
print(s.removeDuplicates(s = "pbbcggttciiippooaais", k = 2))
반응형

댓글