算法题:判断括号字符串是否有效

题目来源于力扣

理论基础

堆栈&队列

判断括号字符串是否有效

题目描述

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

有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例:

输入: "()"
输出: true

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

输入: "(]"
输出: false

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

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

解题思路

栈,两两匹配

Python 解法

def isValid(self, s):
    stack = []
    paren_map = {')':'(', ']':'[', '}':'{'}

    for c in s:
        if c not in paren_map:
            stack.apend(c)
        elif not stack or paren[c] != stack.pop():
            return False
    return not stack
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!