20 - 有效的括号 - python

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

有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。
  • 注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"
输出: true

示例 2:

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

示例 3:

输入: "(]"
输出: false

示例 4:

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

示例 5:


```python
输入: "{[]}"
输出: true

判断字符串中给关于括号的有效性,使用栈保存左括号,如果入栈的是右括号,则将其和栈顶元素进行比较:

  • 如果两者不匹配,直接放回False
  • 否则栈顶元素出栈,右括号不入栈
  • 最后判断栈是否为空
class Solution(object):
    def isValid(self, s):
        stack = []
        d = {")": "(", "}": "{", "]": "["}
        for i in s:
            if i == '(' or i == '{' or i == '[':
                stack.append(i)
            else:
                # 如果是右括号则判断当前栈顶元素是否是对应的左括号
                # 如果是则弹出栈顶元素,同时右括号不入栈
                # 否则直接返回False
                if stack and d[i] == stack[-1]:
                    stack.pop()
                else:
                    return False 

        return stack == []
发布了448 篇原创文章 · 获赞 122 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/Forlogen/article/details/105374693