Python括号匹配问题
给定一个只包含小写字母的字符串,判断该字符串中的括号是否闭合,如果每个左括号都有对应的右括号,并且括号的嵌套顺序正确,那么括号就能正确闭合。
否则,括号不能正确闭合,字符串中括号仅限于 "(" 和 ")"
输入字符串:"((()))" 输出结果:正常闭合符合语法规范
输入字符串:"())(" 输出结果:不能正常闭合,不符合语法规范
'''
步骤:
如果遇到左括号"(",则将其压入栈中。
如果遇到右括号")",则弹出栈顶元素,判断是否与当前右括号匹配。
如果栈为空或者栈顶元素不是左括号"(",则返回False。
如果匹配成功,则继续下一轮循环。
最后,如果栈为空,则表示所有括号都正确闭合,返回True;否则返回False
''''
stack = '' # 字符串模拟栈
# 测试样例
s = "((aaa(abcdef)ccc))"
# s = "())("
for char in s:if char == "(":stack += charelif char ==')':if len(stack)==0 or stack[-1] !='(':print('不能正常闭合,不符合语法规范!')breakstack=stack[:-1] # 表示最后一个元素不要了! 切片不包含最后一个元素
else:if len(stack)==0:print('正常闭合,符合语法规范!')else:print('不能正常闭合,不符合语法规范!')