leetcode 第20题(有效的括号对)

135 阅读1分钟

给定一个仅包含 '(' , ')' , '[' , ']' , '{' , '}' 字符的字符串,判断这个字符串是否是有效的括号对


判断规则:

1.左括号只能与对应类型的右括号配对

2.左右扩号的匹配必须按顺序匹配


例:

"()" : true,  "()[]{}" : true,   "(]" : false ,  "([)]" : false


解法:

class Solution:
    def isValid(self, s: str) -> bool:
        l = []
        for i in range(len(s)):
            if s[i] in ('([{'):
                l.append(s[i])
            else:
                if s[i] in (')]}') and not l:
                    return False
                left = l.pop()
                if ''.join((left,s[i])) not in ('()', '[]', '{}'):
                    return False
        if not l:
            return True