题解 | #括号序列#

括号序列

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

如果当前栈为空,那么再看当前符号为右半部分,则一定不合法;否则就入栈;

如果当前栈不为空,那么判断当前符号能否和栈尾配对,能配对则将栈尾符号出栈;不能配对则看是否##是右半##部分,如果是则一定不合法,不是则入栈;

class Solution:
def isValid(self , s ):
# write code here

    ss={'{':1,'}':-1,'[':2,']':-2,'(':3,')':-3}
    stack=[]
    for x in s:
        if len(stack)==0:
            if ss[x]<0:return False
            else:stack.append(x)
        elif ss[x]+ss[stack[-1]]==0:stack.pop()
        elif ss[x]<0:return False
        else:stack.append(x)
    if len(stack)>0:return False
    else:return True
全部评论

相关推荐

迷茫的大四🐶:💐孝子启动失败,改为启动咏鹅
点赞 评论 收藏
分享
10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务