Untitled

 avatar
unknown
python
2 months ago
1.5 kB
11
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