【leetcode100】有效的括号

1、题目描述

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:

        输入:s = "()"

        输出:true

示例 2:

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

        输出:true

示例 3:

        输入:s = "(]"

        输出:false

2、初始思路

2.1 思路

对于左括号“([{“直接将其加入stack中,在检测到右括号时判断其是否有对应的正确的左括号,如果有,则弹出左括号,如果没有,则说明字符串是无效的,可以直接返回False.

2.2 代码

class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
        if not s:
            return True
        if len(s) % 2 != 0:
            return False
        for i in s:
            if not stack or i == '(' or i == '[' or i == '{':
                stack.append(i)
            elif i == ')' and stack[-1] == '(':
                stack.pop()
            elif i == ']' and stack[-1] == '[':
                stack.pop()
            elif i == '}' and stack[-1] == '{':
                stack.pop()
            else:
                return False
        if not stack:
            return True
        else:
            return False

你可能感兴趣的:(leetcode100,python,leetcode)