반응형
포인트
- 중복되는 문자 (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))
반응형
댓글