Minimum Remove to Make Valid Parentheses

Try to solve the Minimum Remove to Make Valid Parentheses problem.

Statement

Given a string, s, that may have matchedEach opening parenthesis, (, has a closing parenthesis, ), for it. and unmatchedThere is no corresponding closing parenthesis, ), for an opening parenthesis, (. parentheses, remove the minimum number of parentheses so that the resulting string represents a valid parenthesization. For example, the string “a(b)” represents a valid parenthesization while the string “a(b” doesn’t, since the opening parenthesis doesn’t have any corresponding closing parenthesis.

Constraints:

  • 11 \leq s.length 103\leq 10^3
  • s[i] is either an opening parenthesis (( , a closing parenthesiss )), or a lowercase English letter.

Examples