Minimum Remove to Make Valid Parentheses
MediumStringStack
Solution
export function minRemoveToMakeValid(s: string): string {
const chars = [...s];
const stack: number[] = [];
chars.forEach((char, i) => {
if (char === '(') {
stack.push(i);
} else if (char === ')') {
if (0 < stack.length) {
stack.pop();
} else {
chars[i] = '';
}
}
});
while (0 < stack.length) {
chars[stack.pop()!] = '';
}
return chars.join('');
}