impl Solution { pubfnmin_remove_to_make_valid(s: String) -> String { letmut stack = vec![]; letmut remove = vec![]; for i in0..s.len() { let c = s.chars().nth(i).unwrap(); if c == '(' { stack.push(i); } elseif c == ')' { if !stack.is_empty() { stack.pop(); } else { remove.push(i); } } }
while !stack.is_empty() { remove.push(stack.last().unwrap().clone()); stack.pop(); }
letmut ans = "".to_string(); let set : HashSet<usize> = remove.into_iter().collect(); for i in0..s.len() { if !set.contains(&i) { ans.push(s.chars().nth(i).unwrap()); } } return ans; } }