 # Reverse Substrings Between Each Pair of Parentheses in Python

You are given a string `s` that consists of lower case English letters and brackets.

Reverse the strings in each pair of matching parentheses, starting from the innermost one.

Your result should not contain any brackets.

## Example 1:

```Input: s = "(abcd)"

Output: "dcba"```

## Example 2:

```Input: s = "(u(love)i)"

Output: "iloveu"

Explanation: The substring "love" is reversed first, then the whole string is reversed.```

## Example 3:

```Input: s = "(ed(et(oc))el)"

Output: "leetcode"

Explanation: First, we reverse the substring "oc", then "etco", and finally, the whole string.```

## Example 4:

```Input: s = "a(bcdefghijkl(mno)p)q"

Output: "apmnolkjihgfedcbq"```

## Constraints:

``` `0 <= s.length <= 2000`

`s` only contains lower case English characters and parentheses.

It's guaranteed that all parentheses are balanced. ```

## Solution:

``````class Solution(object):
def reverseParentheses(s):
if not s:
return ''

arr = []
for char in s:
if char == ')':
combine_str = ''
while arr and arr[-1] != '(':
elem = arr.pop()[::-1]
combine_str += elem
arr.pop()
arr.append(combine_str)
else:
arr.append(char)
return "".join(arr)

s = "(abcd)"
print(Solution.reverseParentheses(s))