其他分享
首页 > 其他分享> > 栈的压入、弹出序列

栈的压入、弹出序列

作者:互联网

 

 解题思路:

压入的过程中是有弹出的

# -*- coding:utf-8 -*-
class Solution:
    def IsPopOrder(self, pushV, popV):
        #压入过程中是有弹出的
        #首先需要有一个栈,列表
        #按照pushV的方式压入栈
        #弹出的时候是需要循环判断是否需要弹出
        if pushV==[] or len(pushV)!=len(popV):
            return None
        
        stack=[]
        index=0
        for item in pushV:
            #判断是否需要弹出的时机,刚刚压入后就要判断
            stack.append(item)
            #判断需要弹出的情况的条件,压入栈的顶部和弹出栈的顶部数据相同
            while stack and stack[-1]==popV[index]:
                stack.pop()
                index +=1
        if stack==[]:
            return True
        else:
            return False
                
                
        
        # write code here

 

标签:index,压入,pushV,弹出,popV,序列,stack
来源: https://www.cnblogs.com/wanxueyu/p/14609155.html