题目:

【leetcode系列】【py3】【简单】有效的括号

原题链接: https://leetcode-cn.com/problems/valid-parentheses/

 

解题思路:

利用stack

因为必须是以正确的顺序闭合,所以使用stack的时候,遇到左括号,执行入栈操作,遇到右括号,执行出栈操作,获取最后一个入栈的左括号

如果左右括号匹配,则继续循环

如果左右括号不匹配,则返回False

如果按照这个逻辑循环完成,stack不为空,则说明有未闭合的括号,返回False

如果循环完成是stack为空,则返回True

 

代码实现:

class Solution:
    def isValid(self, s: str) -> bool:
        quote_map = {'(' : ')', '{' : '}', '[' : ']'}
        stack = []
        for curr_s in s:
            if curr_s in quote_map:
                stack.append(curr_s)
            elif 0 == len(stack):
                return False
            else:
                last_cha = stack.pop() if stack else '#'
                if curr_s != quote_map[last_cha]:
                    return False
                
        return True if 0 == len(stack) else False

 

相关文章: