题目:
原题链接: 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