20. 有效的括号(easy)

2019-05-19  本文已影响0人  genggejianyi

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true

class Solution:
    def isValid(self, s: str) -> bool:
        while '()' in s or '[]' in s or '{}' in s:
            s = s.replace('()','')
            s = s.replace('[]','')
            s = s.replace('{}','')
        return s==''
class Solution:
    def isValid(self, s: str) -> bool:
        if not s:
            return True
        if s[0]==']' or s[0]==')' or s[0]=='}':
            return False
        res = []
        for i in s:
            if i == '[' or i == '(' or i == '{':
                res.append(i)
            elif res and res[-1] == '[' and i == ']':
                res.pop()
            elif res and res[-1] == '(' and i == ')':
                res.pop()
            elif res and res[-1] == '{' and i == '}':
                res.pop()
            else:
                return False
        return not res
class Solution:
    def isValid(self, s: str) -> bool:
        res,dic = [],{']':'[',')':'(','}':'{'}
        for i in s:
            if i in dic:
                ii = res.pop() if res else 'error'
                if ii != dic[i]:
                    return False
            else:
                res.append(i)
        return not res
上一篇 下一篇

猜你喜欢

热点阅读