栈
镜子.
游戏开发
努力成为一个全能游戏制作人
展开
-
剑指offer32题-从上到下打印二叉树-之字形
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如: 给定二叉树: [3,9,20,null,null,15,7],3 / \ 9 20/ \ 15 7 返回其层次遍历结果:[ [3], [20,9], [15,7] ]提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/proble.原创 2020-09-08 22:38:55 · 90 阅读 · 0 评论 -
剑指offer31题-栈的压入弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列{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(2), push(3), push(4.原创 2020-09-02 22:49:27 · 94 阅读 · 0 评论 -
栈类题目学习-Leetcode225题-用队列实现栈
使用队列实现栈的下列操作:push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top() – 获取栈顶元素 empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty这些操作是合法的。 你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 ,只要是标准的队列操作即可。 你可以假设所有操作都是有效的(例如, 对一个空的栈.原创 2020-07-22 01:19:51 · 129 阅读 · 0 评论 -
栈类题目学习-Leetcode682题-棒球比赛
你现在是棒球比赛记录员。 给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. “+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3. “D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4. “C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的,应该被移除。每一轮的操作都是永久性的,可能会对前一轮和后一轮产生影响。 你需要返回你在所有回合中得分的总和。示例 1.原创 2020-07-19 23:09:04 · 221 阅读 · 0 评论 -
栈类题目学习-Leetcode1047题-删除字符串中所有相邻重复字符
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:“abbaca” 输出:“ca” 解释: 例如,在 “abbaca” 中,我们可以删除 “bb”由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa”可以执行重复项删除操作,所以最后的字符串为 “ca”。来源:力扣(LeetCo.原创 2020-07-19 00:09:36 · 217 阅读 · 0 评论 -
栈类题目学习-Leetcode 面试题03.04题-化栈为队
实现一个MyQueue类,该类用两个栈来实现一个队列。示例:MyQueue queue = new MyQueue();queue.push(1); queue.push(2); queue.peek(); // 返回 1 queue.pop(); //返回 1 queue.empty(); // 返回 false说明:你只能使用标准的栈操作 – 也就是只有 push to top, peek/pop from top, size 和 is empty操作是合法的。 你所使用的语言也许.原创 2020-07-18 23:51:00 · 91 阅读 · 0 评论 -
栈类题目学习-Leetcode09题-用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入: [“CQueue”,“appendTail”,“deleteHead”,“deleteHead”] [[],[3],[],[]]输出:[null,null,3,-1] 示例 2:输入:[“CQueue”,“deleteHead”,“appendTail”,“a.原创 2020-07-18 23:38:00 · 85 阅读 · 0 评论 -
栈类题目学习-Leetcode1021题-删除最外层括号
有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B都是非空有效括号字符串。给出一个非空有效字符串 S,考虑将其进行原语化分解,使得:S = P_1 + P_2 + … + P_k,其中 P_i是有效括号字.原创 2020-07-18 22:47:37 · 164 阅读 · 1 评论