标签:false elf lang lse lan end class 使用 解决
问题:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含小元素的min函数(时间复杂度应为O(1))。 保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。
解决:
#使用辅助栈
class Solution:
def __init__(self):
self.A = []
self.B = []
def push(self, node):
self.A.append(node)
if self.B and self.B[-1] < node:
self.B.append(self.B[-1])
else:
self.B.append(node)
def pop(self):
self.A.pop()
self.B.pop()
def top(self):
return self.A[-1]
def min(self):
return self.B[-1]
问题:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所 有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但 4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)
解决:
class Solution:
def IsPopOrder(self, pushV, popV):
if len(pushV)!= len(popV):
return False
st, i = [], 0
for num in pushV:
st.append(num)
while st and st[-1]== popV[i]:
st.pop()
i += 1
return not st
标签:false elf lang lse lan end class 使用 解决
原文地址:https://www.cnblogs.com/gugu-da/p/13380072.html