Untitled
unknown
python
8 months ago
1.5 kB
13
Indexable
def minRemoveToMakeValid(s: str) -> str:
s = list(s)
left_open_curly = 0
left_open_square = 0
left_open_normal = 0
for i, c in enumerate(s):
if c == "{":
left_open_curly += 1
elif c == "[":
left_open_square += 1
elif c == "(":
left_open_normal += 1
elif c == "}":
if left_open_curly:
left_open_curly -= 1
else:
s[i] = ""
elif c == "]":
if left_open_square:
left_open_square -= 1
else:
s[i] = ""
elif c == ")":
if left_open_normal:
left_open_normal -= 1
else:
s[i] = ""
right_open_curly = 0
right_open_square = 0
right_open_normal = 0
for i in range(len(s)-1, -1, -1):
c = s[i]
if c == "}":
right_open_curly += 1
elif c == "]":
right_open_square += 1
elif c == ")":
right_open_normal += 1
elif c == "{":
if right_open_curly:
right_open_curly -= 1
else:
s[i] = ""
elif c == "[":
if right_open_square:
right_open_square -= 1
else:
s[i] = ""
elif c == "(":
if right_open_normal:
right_open_normal -= 1
else:
s[i] = ""
return "".join(s)
s = "}[]][()()0]{"
print(minRemoveToMakeValid(s))Editor is loading...
Leave a Comment