20,有效的括号

class Solution:
    def isValid(self, s: str) -> bool:
        li = []
        for i in s:
            if i in ["(", "{", "["]:
                li.append(i)
            elif i == ")":
                if not li:
                    return False
                else:
                    if li[-1] == "(":
                        li.pop()
                    else:
                        return False
            elif i == "]":
                if not li:
                    return False
                else:
                    if li[-1] == "[":
                        li.pop()
                    else:
                        return False
            else:
                if not li:
                    return False
                else:
                    if li[-1] == "{":
                        li.pop()
                    else:
                        return False
        if not li:
            return True
        else:
            return False

另一种方式:这是看的别人的解答,看起来很秀,但不知是网速原因还是怎样,下面这种方式比上面那种慢。

class Solution:
    def isValid(self, s: str) -> bool:
        while '{}' in s or '[]' in s or '()' in s:
            s = s.replace('{}', '')
            s = s.replace('[]', '')
            s = s.replace('()', '')
        return s == ''

猜你喜欢

转载自blog.csdn.net/weixin_42758299/article/details/88587928