python3有效的括号
#给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
#有效字符串需满足:
#左括号必须用相同类型的右括号闭合。
#左括号必须以正确的顺序闭合。
strs="'(',')','{','}','[',']'" #方法一
#此处用while比if分别判断要快 while '{}' in strs or '{}' in strs or '[]' in strs: strs=strs.replace('()','') print(strs) strs=strs.replace('{}','') print(strs) strs=strs.replace('[]','') print(strs)
#方法二 strdic={'(':')','{':'}','[':']'} stack=[] for i in strs: #循环得到字典的key if i in strdic: stack.append(i) else: #列表长度为0 if len(stack)==0: print("false") #列表长度不为0 elif len(stack)!=0: a=stack.pop() # 弹出stack列表最后一个值,最后一值 i是否在字典里 if i !=strdic[a]: print("不是对应的括号") else: print("是对应括号的值")
#方法三 原理与方法二相同,就是速度更快 strdic={'(':')','{':'}','[':']'} stack=[] for i in strs: if i in strdic: if stack: mn = stack.pop() if strdic[i] == mn: print("TRUE") else: print("FALSE") else: print("stack为空值") else: stack.append(i)
#链接:https://leetcode-cn.com/problems/valid-parentheses
上班求生存,下班求发展