#1021
Easy Algorithms Remove outermost parentheses
String Stack
86.9% acceptance
Feb 25, 2026
3715
1715
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
Rust
Time O(n)
Space O(1)
impl Solution {
pub fn remove_outer_parentheses(s: String) -> String {
let mut depth = 0;
let mut res = String::new();
for c in s.chars() {
if c == '(' { if depth > 0 { res.push(c); } depth += 1; }
else { depth -= 1; if depth > 0 { res.push(c); } }
}
res
}
}