반응형
인자로 받은 문자열 중 나란히 있는 중복문자를 반복적으로 제거하고, 남은 문자열을 반환하는 문제입니다.
위 예제를 보면 아래와 같이 처리가 흐르게 됩니다.
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 |