본문 바로가기
알고리즘 문제/Leetcode

[leetcode][1190] Reverse Substrings Between Each Pair of Parentheses

by 햄과함께 2019. 10. 1.
320x100

문제 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/1190.%20Reverse%20Substrings%20Between%20Each%20Pair%20of%20Parentheses.cpp


스택을 사용했다.

Example 3: "(ed(et(oc))el)" 

을 예로들어보자.

여는 괄호가 시작될때마다 스택을 하나씩 생성해서 이후에 나오는 문자들을 최근 스택에 쌓는다.

스택이 하나도 없는 경우 문자열 순서에 변경이 없을 것이기 때문에 정답 문자열의 뒤에 추가한다.

닫는 괄호가 나오면 최근 스택을 pop하면서 이전 스택에 push한다.

스택을 pop할때 이전 스택이 없는 경우 (스택이 하나인 경우) 정답 문자열에 추가한다.

 

시간복잡도는 O(|s|^2)


소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/1190.%20Reverse%20Substrings%20Between%20Each%20Pair%20of%20Parentheses.cpp

320x100

댓글