脚本宝典收集整理的这篇文章主要介绍了蓝桥杯Leecode——栈排序,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、PEek 和 iSEMpty。当栈为空时,peek 返回 -1。
思路分析:
1.涉及到排序 并且只允许四种操作 那么引入临时属性self.tmp>>>List
2:push指将元素压入栈顶 pop是删除栈顶的元素并返回它 peek是返回栈顶的元素
isEmpty判断栈是否为空
实现代码:
class SortedStack: def __inIT__(self): self.stack=[] self.tmp=[]#临时空间 def push(self, val: int) -> None: if not self.stack:#如果空栈 直接压栈 self.stack.append(val) else: while self.stack and val>self.stack[-1] :#如果val大于栈顶且stack非空 and前后顺序不可调换 否则报错 "out of index range" self.tmp.append(self.stack.pop())#从stack出栈 从tmp进栈 self.stack.append(val)#插入要插入的值 while self.tmp:#原来出栈的元素回栈 self.stack.append(self.tmp.pop()) def pop(self) -> None: if self.stack: end=self.stack[-1]#暂时储存 del self.stack[-1] return end else: return#后面什么都不加 返回null def peek(self) -> int: return -1 if len(self.stack)==0 else self.stack[-1]#返回栈顶 def isEmpty(self) -> bool: return not self.stack #如果stack为空 not False 等价于True 如果非空 not True 等价于False # Your SortedStack object will be instantiated and called as such: # obj = SortedStack() # obj.push(val) # obj.pop() # param_3 = obj.peek() # param_4 = obj.isEmpty()
以上是脚本宝典为你收集整理的蓝桥杯Leecode——栈排序全部内容,希望文章能够帮你解决蓝桥杯Leecode——栈排序所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。