4.有效的括号

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

有效字符串需满足:

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

示例 1:

输入:s = "()"
输出:true
示例 2:

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

输入:s = "(]"
输出:false
示例 4:

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

解题思路:

这道题看到别人的思路,瞬间跪了。

简直不能太牛,自己就不献丑了。

外面一个大while循环,判断字符串中是否包含()[] {},只要包含其中任意一个则进入循环。

循环中,将成对的()[] {}全部替换成空字符串,一直到找不到成对的。

最后直接判断替换之后的字符串是否为空,如果不为空,说明存在不成对的括号。

牛掰!

 1 class Solution(object):
 2     def isValid(self, s):
 3         """
 4         :type s: str
 5         :rtype: bool
 6         """
 7         while "()" in s or "[]" in s or "{}" in s:
 8             s = s.replace("()", "")
 9             s = s.replace("[]", "")
10             s = s.replace("{}", "")
11         return s == ""

 

posted @ 2022-01-11 17:17  Jockey浩  阅读(35)  评论(0编辑  收藏  举报