栈
1
哆啦c梦~~
这个作者很懒,什么都没留下…
展开
-
表达式计算(栈的应用)
题目描述给出一个表达式,其中运算符仅包含+,-,*,/,^(加 减 乘 整除 乘方)要求求出表达式的最终值。数据可能会出现括号情况,还有可能出现多余括号情况。数据保证不会出现大于或等于231的答案。数据可能会出现负数情况。输入格式输入仅一行,即为表达式。输出格式输出仅一行,既为表达式算出的结果。输入样例:(2+2)^(1+1)输出样例:16题解从前往后扫描字符串。维护两个栈,一个数字栈,储存数字。一个运算符栈,储存运算符。如果是数字就压入数字栈中。如果是‘(’ 就压入原创 2020-10-27 19:28:17 · 1072 阅读 · 0 评论 -
AcWing 150. 括号画家
题目描述达达是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚起床的达达画了一排括号序列,其中包含小括号( )、中括号[ ]和大括号{ },总长度为N。这排随意绘制的括号序列显得杂乱无章,于是达达定义了什么样的括号序列是美观的:(1) 空的括号序列是美观的;(2) 若括号序列A是美观的,则括号序列 (A)、[A]、{A} 也是美观的;(3) 若括号序列A、B都是美观的,则括号序列AB也是美观的。例如 (){} 是美观的括号序列,而)({)[}]( 则不是。现在达达想在她绘制的原创 2020-10-26 20:26:06 · 311 阅读 · 0 评论 -
单调栈的应用 (直方图最大矩形 + 接雨水 + 城市游戏)
模板常见模型:找出每个数左边离它最近的比它大/小的数int tt = 0;for (int i = 1; i <= n; i ++ ){ while (tt && check(stk[tt], i)) tt -- ; stk[ ++ tt] = i;}应用场景找出每个数左边离它最近的比它大/小的数例题直方图中最大的矩形【单调栈】题目描述直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图原创 2020-10-19 21:16:53 · 247 阅读 · 0 评论 -
AcWing 128. 编辑器(栈)
题目描述你将要实现一个功能强大的整数序列编辑器。在开始时,序列是空的。编辑器共有五种指令,如下:1、“I x”,在光标处插入数值x。2、“D”,将光标前面的第一个元素删除,如果前面没有元素,则忽略此操作。3、“L”,将光标向左移动,跳过一个元素,如果左边没有元素,则忽略此操作。4、“R”,将光标向右移动,跳过一个元素,如果右边没有元素,则忽略次操作。5、“Q k”,假设此刻光标之前的序列为a1,a2,…,an,输出max1≤i≤kSi,其中Si=a1+a2+…+ai。输入格式第一行包含原创 2020-10-19 19:22:35 · 228 阅读 · 0 评论 -
AcWing 129. 火车进栈
题目描述这里有n列火车将要进站再出站,但是,每列火车只有1节,那就是车头。这n列火车按1到n的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个死胡同,而且站台只有一条股道,火车只能倒着从西方出去,而且每列火车必须进站,先进后出。也就是说这个火车站其实就相当于一个栈,每次可以让右侧头火车进栈,或者让栈顶火车出站。车站示意如图:出站<—— <——进站|车||站||__|现在请你按《字典序》输出前20种可能的出栈方案。输入格式输入一个整数n,代表火车数原创 2020-10-19 17:55:43 · 136 阅读 · 0 评论