题解 | #括号序列#

括号序列

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
全部评论

相关推荐

算法丰川祥:实际就两个人给他投,它这么说好显得自己比较抢手
点赞 评论 收藏
分享
站队站对牛:兄弟 你这是四年就当大一过了吧 也许你校园卡 赚了有五位数了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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