921. Minimum Add to Make Parentheses Valid
Question 921
https://leetcode.com/problems/minimum-add-to-make-parentheses-valid/description/
Given a string S
of '('
and ')'
parentheses, we add the minimum number of parentheses ( '('
or ')'
, and in any positions ) so that the resulting parentheses string is valid.
Formally, a parentheses string is valid if and only if:
It is the empty string, or
It can be written as
AB
(A
concatenated withB
), whereA
andB
are valid strings, orIt can be written as
(A)
, whereA
is a valid string.
Given a parentheses string, return the minimum number of parentheses we must add to make the resulting string valid.
Example 1:
Input: "())"
Output: 1
Answer
class Solution(object):
def minAddToMakeValid(self, S):
Sstack = []
Wrong = []
for s in S:
if s == "(":
Sstack.append(s)
elif s == ")":
if len(Sstack) < 1:
Wrong.append(s)
else:
Sstack.pop()
return len(Sstack) + len(Wrong)
Last updated