Back to all solutions
#1021 - Remove Outermost Parentheses
Problem Description
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
/**
* @param {string} s
* @return {string}
*/
var removeOuterParentheses = function(s) {
let result = '';
let depth = 0;
for (const char of s) {
if (char === '(') {
if (depth > 0) result += char;
depth++;
} else {
depth--;
if (depth > 0) result += char;
}
}
return result;
};