leetcode-1021-remove-outermost-parentheses

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 = P_1 + P_2 + … + P_k, where P_i are primitive valid parentheses strings.

Return S after removing the outermost parentheses of every primitive string in the primitive decomposition of S.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution {
public:
string removeOuterParentheses(string S) {
string result;

int left = 0;
for(int i = 0; i < S.length(); i++)
{
if(S[i] == '(')
{
if(left != 0)
{
result += '(';
}
left++;
}

if(S[i] == ')')
{
left--;
if(left != 0)
{
result += ')';
}
}
}

return result;
}
};