|
发表于 2023-5-29 16:14:23
|
显示全部楼层
- my_str = input("请输入测试字符串:")
- # 将字符串转换成列表
- my_list = list(my_str)
- # 新建一个字典用于存储括号匹配关系
- brackets_dict = {'(':')', '[':']', '{':'}'}
- stack = []
- # 遍历列表中的每一个字符
- for i in my_list:
- # 如果当前字符是左括号,则将其压入栈中
- if i in brackets_dict.keys():
- stack.append(i)
- # 如果当前字符是右括号,则取出栈顶元素进行匹配
- elif i in brackets_dict.values():
- # 如果当前栈已经为空,则说明不合法
- if len(stack) == 0:
- print("不合法T_T")
- break
- # 取出栈顶元素
- top = stack.pop()
- # 如果当前右括号和栈顶左括号不匹配,则说明不合法
- if brackets_dict[top] != i:
- print("不合法T_T")
- break
- else:
- # 程序执行到这里,说明所有字符都匹配上了
- if len(stack) == 0:
- print("合法^o^")
- else:
- print("不合法T_T")
复制代码 |
|