| 
 | 
 
 
发表于 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['}'] =  {  ~~~  
 
 - {  +++ ['{']
 
 - [  +++ ['{', '[']
 
 - {  +++ ['{', '[', '{']
 
 - {  +++ ['{', '[', '{', '{']
 
 - (  +++ ['{', '[', '{', '{', '(']
 
 - (  +++ ['{', '[', '{', '{', '(', '(']
 
 - (  +++ ['{', '[', '{', '{', '(', '(', '(']
 
 - {  +++ ['{', '[', '{', '{', '(', '(', '(', '{']
 
 - }  --- ['{', '[', '{', '{', '(', '(', '(', '{']
 
 - )  --- ['{', '[', '{', '{', '(', '(', '(']
 
 - )  --- ['{', '[', '{', '{', '(', '(']
 
 - )  --- ['{', '[', '{', '{', '(']
 
 - }  --- ['{', '[', '{', '{']
 
 - }  --- ['{', '[', '{']
 
 - ]  --- ['{', '[']
 
 - }  --- ['{']
 
 -    *** []
 
  
- 合法!
 
  复制代码 |   
 
 
 
 |