Python括号匹配问题

给定一个只包含小写字母的字符串,判断该字符串中的括号是否闭合,如果每个左括号都有对应的右括号,并且括号的嵌套顺序正确,那么括号就能正确闭合。
否则,括号不能正确闭合,字符串中括号仅限于 "(" 和 ")"

输入字符串:"((()))" 输出结果:正常闭合符合语法规范

输入字符串:"())(" 输出结果:不能正常闭合,不符合语法规范

'''
步骤:
如果遇到左括号"(",则将其压入栈中。
如果遇到右括号")",则弹出栈顶元素,判断是否与当前右括号匹配。
如果栈为空或者栈顶元素不是左括号"(",则返回False。
如果匹配成功,则继续下一轮循环。
最后,如果栈为空,则表示所有括号都正确闭合,返回True;否则返回False
''''
stack = ''   # 字符串模拟栈
# 测试样例
s = "((aaa(abcdef)ccc))"
# s = "())("
for char in s:
    if char == "(":
        stack += char
    elif char ==')':
        if len(stack)==0 or stack[-1] !='(':
            print('不能正常闭合,不符合语法规范!')
            break
        stack=stack[:-1]    # 表示最后一个元素不要了! 切片不包含最后一个元素
else:
    if len(stack)==0:
        print('正常闭合,符合语法规范!')
    else:
        print('不能正常闭合,不符合语法规范!')

你可能感兴趣的:(python,java,leetcode)