有效括号题目解答

有效括号题目解答

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

  • 有效字符串需满足:

    1. 左括号必须用相同类型的右括号闭合。
    2. 左括号必须以正确的顺序闭合。
  • 注意空字符串可被认为是有效字符串。
    在这里插入图片描述

  • 解题思路:

    1. 左右括号必须相等,那么先记录不同左括号出现的次数,生成对应的右括号,压栈。先进后出。适合数据类型列表。
    2. 如果一开始就出现右括号,那么一定失败,可以提前退出。
class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        arr = []
        dt = {"(":")","[":"]","{":"}"}
        for k,i in enumerate(s):
            if len(s)-k<len(arr):
                return False
            if i in dt:
                arr.append(dt[i])
            elif len(arr)>=1 and i == arr[-1]:
                arr.pop()
            else:
                return False
        return False if len(arr) else True
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章