October 8Easy
Remove outermost parentheses
- String
- Stack
- Bracket Sequences
Problem
A valid parentheses string is either empty "", "(" + A + ")", or A + B, where A and B are valid parentheses strings, and + represents string concatenation.
● For example, "", "()", "(())()", and "(()(()))" are all valid parentheses strings.
A valid parentheses string s is primitive if it is nonempty, and there does not exist a way to split it into s = A + B, with A and B nonempty valid parentheses strings.
Given a valid parentheses string s, consider its primitive decomposition: s = P1 + P2 + ... + Pk, where Pi are primitive valid parentheses strings.
Return s after removing the outermost parentheses of every primitive string in the primitive decomposition of s.
Solution
class Solution:
def removeOuterParentheses(self, s: str) -> str:
res = ""
opened = 0
for char in s:
if char == "(":
if opened:
res += char
opened += 1
else:
opened -= 1
if opened:
res += char
return res