leetcode 20-有效的括号 python

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"
输出: true

示例 2:

输入: "()[]{}"
输出: true

示例 3:

输入: "(]"
输出: false

示例 4:

输入: "([)]"
输出: false

示例 5:

输入: "{[]}"
输出: true

这里可以用字典保存每一对括号,key为右边括号,value为左边括号,可以方便后面使用pop()函数进行删除。当出现左括号时,将括号保存在list中,当右括号出现时通过对比字典,得出对应的左括号,与之前保存在list中的最后一个左括号进行对比,如果一样则删除,一直删除到没有括号则返回True。

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        a = {')':'(',']':'[','}':'{'}
        l = [None]
        for i in s:
            if i in a and a[i] == l[-1]:
                l.pop()
            else:
                l.append(i)
        return len(l) == 1
        

 

你可能感兴趣的:(python基础,leetcode)