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

posted @ 2021-09-05 20:00  呆呆蒙蒙  阅读(120)  评论(0编辑  收藏  举报