题解 | #栈的压入、弹出序列#

栈的压入、弹出序列

http://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106

# -*- coding:utf-8 -*-
class Solution:
    def IsPopOrder(self, pushV, popV):
        # write code here
        stack = []
        pushIdx = 0
        popIdx = 0
        
        while True:
#             print("pushIdx:%d,len(pushV):%d, popidx:%d" %(pushIdx, len(pushV), popIdx))
            if pushIdx >= len(pushV) and (len(stack)>0 and stack[-1] != popV[popIdx]):
                return False
            if pushIdx >= len(pushV) and popIdx == pushIdx:
                return True
            if len(stack)==0:
                for item in pushV[pushIdx:]:
                    stack.append(item)
                    pushIdx += 1
                    if item == popV[popIdx]:
                        popIdx += 1
                        stack.pop()
                        break
#                 print(pushIdx, popIdx)
            else:
                if stack[-1] == popV[popIdx]:
                    popIdx += 1
                    stack.pop()
                else:
                    for item in pushV[pushIdx:]:
                        stack.append(item)
                        pushIdx += 1
                        if item == popV[popIdx]:
                            popIdx += 1
                            stack.pop()
                            break
        return True
全部评论

相关推荐

01-24 08:13
已编辑
合肥工业大学 Java
程序员牛肉:没啥问题。标准的流水线简历,但是学历好一点,所以应该是有约面的机会的。 这段时间可以考虑把自己的两个项目彻底的理一理。争取能够讲清楚每一个功能点
点赞 评论 收藏
分享
02-16 10:35
已编辑
西安科技大学 golang
虚闻松声:整体应该挺好了 项目2-3个就够了。都类似第一段这么写。 构建数据闭环 推动工程创新 优化架构设计 免费修改简历,就业咨询,欢迎私信交流。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务