20-Stack最典型例

发布时间 2023-11-09 19:18:09作者: LYoungH

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

 

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        temp = list()
        length = len(s)
        left = ['(','{','[']
        for i in range(length):
            if s[i] in left:
                temp.append(s[i])
            else:
                if  not temp:
                    return False
                elif s[i] == ')':
                    if temp[-1] == '(':
                        temp.pop()
                    else:
                        return False
                elif s[i] == '}':
                    if temp[-1] == '{':
                        temp.pop()
                    else:
                        return False
                elif s[i] == ']':
                    if temp[-1] == '[':
                        temp.pop()
                    else:
                        return False
        if len(temp):
            return False
        else:
            return True

算是第一次用Py实现栈