天天看点

有效括号题目解答

有效括号题目解答

  • 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
  • 有效字符串需满足:
  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      

继续阅读