栈
一叶知秋的BLOG
没有过不去的黑夜,也没有等不到的明天。乾坤未定,你我皆是黑马。
展开
-
python 接雨水
接雨水给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9题解python codeclass Solution: def trap(s原创 2021-12-13 08:00:00 · 403 阅读 · 0 评论 -
python 每日温度
| 每日温度请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出: [1,1,1,0]示例 3:输入: temperatures = [30,60,90]输出: [1,1原创 2021-12-12 08:00:00 · 814 阅读 · 0 评论 -
python 栈的压入弹出序列
| 栈的压入和弹出序列输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push原创 2021-12-11 08:00:00 · 423 阅读 · 0 评论 -
python 删除字符串中的所有相邻的重复项
| 删除字符串中的所有相邻的重复项给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符原创 2021-12-10 08:00:00 · 2234 阅读 · 0 评论 -
python 计算器
| 计算器给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。示例 1:输入: "3+2*2"输出: 7示例 2:输入: " 3/2 "输出: 1示例 3:输入: " 3+5 / 2 "输出: 5| 题解class Solution: """ 解题思路: 利用两个栈来解决 第一个栈存放被计算的数字,第二个栈存放运算原创 2021-12-09 08:00:00 · 437 阅读 · 0 评论 -
python 用一个数组实现三个栈
| 用一个数组实现三个栈三合一。描述如何只用一个数组来实现三个栈。你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。构造函数会传入一个stackSize参数,代表每个栈的大小。示例1: 输入:["TripleInOne", "push", "push", "pop", "pop", "pop", "isEmpty"][[1], [0,原创 2021-12-08 08:00:00 · 191 阅读 · 0 评论 -
python 有效的括号
| 有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([)]"输出:false示例 5:输入:s = "{[]}"输出:true| 题原创 2021-12-06 22:58:12 · 1365 阅读 · 0 评论 -
python 最小栈
| 最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。 示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null原创 2021-12-07 10:00:00 · 307 阅读 · 0 评论 -
python 栈排序
| 栈排序栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek 返回 -1。示例1: 输入:["SortedStack", "push", "push", "peek", "pop", "peek"][[], [1], [2], [], [], []] 输出:[null,null,null,1,null,2]示例2:原创 2021-12-05 21:02:54 · 356 阅读 · 0 评论 -
python 链栈及基本操作
链栈,即用链表实现栈存储结构链栈的实现思路同顺序栈类似,顺序栈是将顺序表(数组)的一端作为栈低,另一端为栈顶;链栈也如此,通常我们将链表的头部作为栈顶,尾部作为栈低,如图1所示:将链表头部作为栈顶的一端,可以避免在实现数据"入栈"和"出栈"操作时做大量遍历链表的耗时操作。链表的头部作为栈顶,意味着:在实现数据入栈操作时,需要将数据从链表的头部插入;在实现数据出栈操作时,需要删除链表头部的首元节点;因此,链栈实际上就是一个只能采用头插插入或删除数据的链表。链栈元素入栈python代原创 2021-12-03 10:00:00 · 1415 阅读 · 0 评论 -
python 顺序栈及基本操作
顺序栈顺序栈,即用顺序表实现栈存储结构。通过前面的学习我们知道,使用栈存储结构操作数据元素必须遵守 “先进后出” 的原则,本节就 “如何使用顺序表模拟栈以及实现对栈中数据的基本操作(出栈和入栈)” 给大家做详细介绍。如果你仔细观察顺序表(底层实现是数组)和栈结构就会发现,它们存储数据的方式高度相似,只不过栈对数据的存取过程有特殊的限制,而顺序表没有。通过图 1 和图 2 的对比不难看出,使用顺序表模拟栈结构很简单,只需要将数据从 a 数组下标为 0 的位置依次存储即可。从数组下标为 0 的模拟栈存原创 2021-12-02 10:00:00 · 2242 阅读 · 0 评论 -
什么是栈,栈存储结构详情
什么是栈,栈存储结构详情同顺序表和链表一样,栈也是用来存储逻辑关系为一对一数据的线性存储结构,如图所示:从图1我们看到,栈存储结构与之前学的线性存储有所差异,这源于栈对数存和取的过程有特殊的要求:栈只能从表的一端存取数据,另一端是封闭的在栈中,无论是存储数据还是取数据,都必须遵循先进先出的原则,即最先进栈的元素最后出栈。从图1栈来说,从图中数据的存储状态可判断出,元素1是最先进的栈。因此,当需要从栈中取出元素1的时候,根据先进后出原则,需提前将元素3和元素2从栈中取出,然后才能成功取出元素1.原创 2021-11-28 22:22:44 · 1336 阅读 · 0 评论 -
python 用队列实现栈
| 用队列实现栈请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front原创 2021-12-01 10:00:00 · 685 阅读 · 0 评论 -
python 用两个栈实现一个队列
| 两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appen原创 2021-11-30 10:00:00 · 547 阅读 · 0 评论