320x100
문제 : https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string-ii/
{문자, 문자가 연속으로 나온 횟수}를 요소로 하는 stack을 하나 만든다.
문자열 s를 앞에서부터 탐색하면서 스택이 비어있거나 스택 top에 있는 요소의 문자가 탐색중인 문자와 같다면 top 요소의 문자가 연속으로 나온 횟수를 +1 해준다.
그리고 만약 스택 top의 연속 횟수가 k와 같다면 stack을 pop 시킨다.
모든 문자열 s를 탐색하면서 stack을 세팅했다면
stack을 pop하면서 정답 문자열 앞에 문자열을 추가하면서 정답을 구할 수 있다.
시간 복잡도는 O(N). (N = |s|)
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[leetcode][1219] Path with Maximum Gold (0) | 2019.10.14 |
---|---|
[leetcode][1186] Maximum Subarray Sum with One Deletion (0) | 2019.10.05 |
[leetcode][1207] Unique Number of Occurrences (0) | 2019.10.02 |
[leetcode][1190] Reverse Substrings Between Each Pair of Parentheses (0) | 2019.10.01 |
[leetcode][1189] Maximum Number of Balloons (0) | 2019.09.25 |
댓글