PythonCodeFight-Day8

Day_8

Intro

Q13. reverseInParentheses

Write a function that reverses characters in (possibly nested) parentheses in the input string.

Input strings will always be well-formed with matching ()s.

1
2
3
4
5
6
7
8
9
10
def reverseInParentheses(inputString):
#[출처] [python] codeSignal 문제풀이 (13~15)|작성자 Jun
s = inputString

while '(' in s : #괄호가 다 없어질때까지 반복
fb = s.rfind('(') # rfind : 뒤에서부터 문자열 탐색
bb = s[fb:].find(')') #find : 앞에서부터 문자열 탐색
s = s[:fb] + s[fb+1:fb+bb][::-1] + s[fb+bb+1:] #부분적으로 슬라이스 가능

return s

문제를 못 풀겠어서 코드파이트 같이하는 오픈카톡방 방장님의 코드를 이용했음
처음에는 스택을 이용해서 접근하면 어떨까 고민하고 머리를 굴려봤는데, 괄호 안에 괄호가 반복되는 경우를 어떻게 처리해야할지 감이 하나도 오질 않았다. 그렇다고 다른 방법이 떠오르지 않아서 작성해두신 답을 그대로 이용했다.

이용한 답을 보니 while 뒤에 ‘(‘ in s 와 같은 문법을 이용할 수 있다는 것을 알게 되었다.