leetcode 堆栈

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

https://leetcode-cn.com/problems/valid-parentheses/description/

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        stack = []
        paren_map = {')':'(',']':'[','}':'{'}
        for c in s:
            if c not in paren_map.keys(): #如果字符是左括号类型,则压入栈
                stack.append(c)
            elif not stack or paren_map[c] != stack.pop(): # 如果字符是右括号类型,判断栈是否空以及与栈顶元素是否匹配,若栈为空或者与栈顶元素不匹配则返回False
                return False
        return not stack  # 栈为空则所有字符串匹配成功,返回True,否则说明有未匹配的字符,返回False

代码亮点:

使用字典map的方式存储字符对,存储方式简单明了。

你可能感兴趣的:(leetcode)