|
发表于 2023-2-11 19:13:05
|
显示全部楼层
本帖最后由 chinajz 于 2023-2-11 19:25 编辑
测试及运行记录:
- #coding=gbk
- d , e , f = {')' : '(' , ']' : '[' , '}' : '{'} , [] , False
- #变量d集合中,将左右封闭符号互为键、值;e=[] ;f=False
- print("d=",d)
- for x in d:
- print(f"d['{x}'] = ",d[x],end = " ~~~ ")
- print()
- for c in '{[{{((({})))}}]}':
-
- if c in '{[(' :#判断是否为左边符号
- e . append(c)#增加左边符号记录
- print(c," +++",e)
- elif c in '}])': #右边符号判断
-
- print(c," ---",e)
- if not e or d[c] != e . pop():#e删除未尾符号,如果未尾符号与当前符号(左边)不匹配结束当前进程
- break
- else:#如果for循环正常结束,else中语句执行。如果是break的,则不执行。
-
- #if not e :#如果没有左边符号也没有右边符号
- print(" ***",e)
- f = True
- print()
- print('合法!') if f else print('非法!')
复制代码
运行结果:
- d= {')': '(', ']': '[', '}': '{'}
- d[')'] = ( ~~~ d[']'] = [ ~~~ d['}'] = { ~~~
- { +++ ['{']
- [ +++ ['{', '[']
- { +++ ['{', '[', '{']
- { +++ ['{', '[', '{', '{']
- ( +++ ['{', '[', '{', '{', '(']
- ( +++ ['{', '[', '{', '{', '(', '(']
- ( +++ ['{', '[', '{', '{', '(', '(', '(']
- { +++ ['{', '[', '{', '{', '(', '(', '(', '{']
- } --- ['{', '[', '{', '{', '(', '(', '(', '{']
- ) --- ['{', '[', '{', '{', '(', '(', '(']
- ) --- ['{', '[', '{', '{', '(', '(']
- ) --- ['{', '[', '{', '{', '(']
- } --- ['{', '[', '{', '{']
- } --- ['{', '[', '{']
- ] --- ['{', '[']
- } --- ['{']
- *** []
- 合法!
复制代码 |
|