【每日一题20220803】有效的括号

题目难度:简单
题目来源:20. 有效的括号 - 力扣(LeetCode)

描述

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

有效字符串需满足:

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

编写一个函数, 完成上述操作

class Solution:
    def isValid(self, s: str) -> bool:
    # your code here

示例 1:

输入:s = "()"
输出:true

示例 2:

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

示例 3:

输入:s = "(]"
输出:false

示例 4:

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

示例 5:

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

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 ‘( ) [ ] { }’ 组成

def isValid(s: str) -> bool:
    a,b,c='()','{}','[]'
    while a in s or b in s  or c in s:
        s=s.replace(a,'').replace(b,'').replace(c,'')
    return s==''
class Solution:
    def isValid(self, s: str) -> bool:
        while '[]' in s or '{}' in s or '()' in s:
            s=s.replace('[]','').replace('()','').replace('{}','')
        return True if s=='' else False
S=Solution()
assert S.isValid('()')==True
assert S.isValid('()[]{}')==True
assert S.isValid('(]')==False
assert S.isValid('([)]')==False
assert S.isValid('{[]}')==True