• Leetcode题库——20.有效的括号



    @author: ZZQ
    @software: PyCharm
    @file: IsValid.py
    @time: 2018/9/16 20:20
    要求: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
    有效字符串需满足:
    1)左括号必须用相同类型的右括号闭合。
    2)左括号必须以正确的顺序闭合。

    class Solution():
        def __init__(self):
            pass
    
        def isCouple(self, str1, str2):
            if str1 == '(' and str2 == ')':
                return True
            else:
                if str1 == '[' and str2 == ']':
                    return True
                else:
                    if str1 == '{' and str2 == '}':
                        return True
                    else:
                        return False
    
        def isValid(self, s):
            """
            :type s: str
            :rtype: bool
            """
            stack = []
            length = len(s)
            for i in range(0, length):
                if s[i] == '(' or s[i] == '[' or s[i] == '{':
                    stack.append(s[i])
                    if len(stack) == length:
                        return False
                else:
                    if len(stack) == 0:
                        return False
                    flag = self.isCouple(stack[-1], s[i])
                    if flag:
                        stack.pop(-1)
                    else:
                        return False
            if len(stack) != 0:
                return False
            return True
    
        def isValid2(self, s):
            a = {')': '(', ']': '[', '}': '{'}
            l = [None]
            for i in s:
                if i in a and a[i] == l[-1]:
                    l.pop()
                else:
                    l.append(i)
                print(l)
            return len(l) == 1  # 最终要保证栈中的元素为空
    
    
    if __name__ == "__main__":
        str = "()[]{}"
        # str = "(]"
        # str = "([)]"
        # str = "{[]}"
        str = "([]"
        answer = Solution()
        print(answer.isValid2(str))
    
    CV小蜡肉
  • 相关阅读:
    oracle 更改账户名密码
    mongodb 分片副本集搭建
    爬虫目录
    centos MySQL安装与卸载
    ANACONDA 安装
    chrome 安装
    linux pycharm 安装 idea
    linux 基本命令
    高数18讲 之极限与连续
    高数18讲 之基础知识
  • 原文地址:https://www.cnblogs.com/zzq-123456/p/9671322.html
Copyright © 2020-2023  润新知