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 == ""
最懒的人就是整天忙得没时间学习、反思、成长的人。