#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @return bool布尔型
#
#遍历字符串中的每个字符,如果字符是左括号('('、'{' 或 '['),则将其压入栈中;如果字符是右括号(')'、'}' 或 ']'),则检查栈顶元#素是否与之匹配。如果匹配,则弹出栈顶元素;如果不匹配或栈为空,则说明该字符串不是有效的括号序列。最后,如果栈为空,则说明所有的括#号都正确匹配。
class Solution:
def isValid(self , s: str) -> bool:
# write code here
matching_bracket = {')': '(', '}': '{', ']': '['}
# 初始化一个空栈
stack = []
# 遍历字符串中的每个字符
for char in s:
# 如果字符是左括号,则将其压入栈中
if char in matching_bracket.values():
stack.append(char)
# 如果字符是右括号
elif char in matching_bracket.keys():
# 检查栈是否为空以及栈顶元素是否与当前右括号匹配
if stack and stack[-1] == matching_bracket[char]:
stack.pop() # 匹配则弹出栈顶元素
else:
return False # 不匹配或栈为空则返回False
# 最后检查栈是否为空
return not stack
# list1=[]
# for i in range(len(s)):
# if s[i]=='(' or s[i]=='[' or s[i]=='{':
# list1.append(s[i])
# elif s[i]==')':
# if list1[-1]=='(' and len(list1)>0:
# list1.pop()
# else:
# return False
# elif s[i]==']':
# if list1[-1]=='[' and len(list1)>0:
# list1.pop()
# else:
# return False
# elif s[i]=='}':
# if list1[-1]=='{' and len(list1)>0:
# list1.pop()
# else:
# return False
# if len(list1)==0:
# return True
# else:
# return False