Mid/SeniorStackString

Minimum Remove to Make Valid Parentheses

Given a string s of '(', ')', and lowercase English characters.

Your task is to remove the minimum number of parentheses ('(' or ')', in any positions) so that the resulting parentheses string is valid and return any valid string.

Formally, a parentheses string is valid if and only if:

  • It is the empty string, contains only lowercase characters, or
  • It can be written as AB (A concatenated with B), where A and B are valid strings, or
  • It can be written as (A), where A is a valid string.
Example 1
Inputs = "lee(t(c)o)de)"
Output"lee(t(c)o)de"
"lee(t(co)de)" and "lee(t(c)ode)" would also be accepted.
Example 2
Inputs = "a)b(c)d"
Output"ab(c)d"
Removing the unmatched closing parenthesis after a gives a valid string.

Constraints

  • 1 <= s.length <= 10^5
  • s[i] is either '(' , ')', or lowercase English letter.

Asked at 11 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate