题解 | #有效括号序列#

有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @return bool布尔型
#
class Solution:
    def isValid(self , s: str) -> bool:
        # write code here
		#定义一个字典,存放key与value的关系
        dict1={}
        dict1["("]=")"
        dict1["["]="]"
        dict1["{"]="}"
		
		#定义一个栈,当遇到左括号的时候入栈,遇到有括号的时候出栈
        stack=[]
		
		
		#将s转化为列表的形式
        L=list(s)
		#遍历列表中的元素
        for x in L:
            if x in "([{":
                stack.append(x)
                #print(stack)
            elif x in ")]}":
			  #当栈中的元素为空时,很明显不能遍历了,但是却来了一个右括号要匹配,显然是错误的
                if len(stack)==0:
                    return False
		       #弹出栈中的最外层的元素
                y=stack.pop()
				#将弹出的元素的字典对应的value和x作对比,相同的话继续遍历Lzhong 的元素,不同的话,返回False
                if x==dict1[y]:
                    print("ok")
                    pass
                else:
                    return False
        #print(L)
		#遍历完成后,最后的元素stack中的,为0.大于0的话,返回False
        if len(stack)>0:
            return False
		#遍历完成没有其他问题返回True
        return True

全部评论

相关推荐

头像
昨天 15:46
已编辑
中南大学 后端
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务