LeetCode 20. 有效的括号

作者: freesan44 | 来源:发表于2020-02-20 16:29 被阅读0次

    题目

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

    有效字符串需满足:

    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。

    示例 1:
    
    输入: "()"
    输出: true
    示例 2:
    
    输入: "()[]{}"
    输出: true
    示例 3:
    
    输入: "(]"
    输出: false
    示例 4:
    
    输入: "([)]"
    输出: false
    示例 5:
    
    输入: "{[]}"
    输出: true
    

    解题思路

    用栈的概念

    class Solution:
        def isValid(self, s: str) -> bool:
            inList = ["(", "{", "["]
            outList = [")", "}", "]"]
            tempList = list()
            strList = list(s)
            for each in strList:
                if each in inList:
                    tempList.append(each)
                elif each in outList:
                    if len(tempList) <= 0:
                        return False
                    lastS = tempList[-1]
                    if (lastS in inList) and (inList.index(lastS) == outList.index(each)):
                        tempList.pop()
                    else:
                        return False
            if len(tempList) > 0:
                return False
            return True
    

    相关文章

      网友评论

        本文标题:LeetCode 20. 有效的括号

        本文链接:https://www.haomeiwen.com/subject/czixqhtx.html