1190. Reverse Substrings Between Each Pair of Parentheses

class Solution:
    def reverseParentheses(self, s: str) -> str:
        s_stack=[]
        l,r=0,0
        while r<len(s):
            if s[r]=='(':
                if r!=l:
                    s_stack.append(s[l:r])
                s_stack.append(s[r])
                l=r+1
            elif s[r]==')':
                cur=s[l:r]
                ss=''
                while ss!='(':
                    ss=s_stack.pop()
                    if ss!='(':
                        cur=ss+cur
                    else:
                        cur=cur[::-1]
                        s_stack.append(cur)
                l=r+1
            r+=1
        if s[-1]!=')':
            s_stack.append(s[l:r])
        rep=""
        for str1 in s_stack:
            rep+=str1
        return rep
        
        
    '''
    def ss:
        if not s:
            return s
        l,r=0,len(s)-1
        while s[l]!='(' and l<r:
            l+=1
        while s[r]!=')' and r>l:
            r-=1
        if l==r:
            return s
        return s[:l]+self.reverseParentheses(s[l+1:r])[::-1]+s[r+1:]
    '''

Leave a comment