news 2026/10/27 2:04:47

3. 栈-lc-python

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3. 栈-lc-python

20. 有效的括号 - 力扣(LeetCode)

给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:

输入:s = "()"

输出:true

示例 2:

输入:s = "()[]{}"

输出:true

示例 3:

输入:s = "(]"

输出:false

示例 4:

输入:s = "([])"

输出:true

示例 5:

输入:s = "([)]"

输出:false

提示:

  • 1 <= s.length <= 104
  • s仅由括号'()[]{}'组成

739. 每日温度 - 力扣(LeetCode)

给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用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,0]

155. 最小栈 - 力扣(LeetCode)

设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。

实现MinStack类:

  • MinStack()初始化堆栈对象。
  • void push(int value)将元素value推入堆栈。
  • void pop()删除堆栈顶部的元素。
  • int top()获取堆栈顶部的元素。
  • int getMin()获取堆栈中的最小元素。

示例 1:

输入:["MinStack","push","push","push","getMin","pop","top","getMin"] [[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,null,0,-2]解释:MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. minStack.getMin(); --> 返回 -2.

提示:

  • -231 <= val <= 231 - 1
  • pop、top和getMin操作总是在非空栈上调用
  • push,pop,top, andgetMin最多被调用3 * 104次

227. 基本计算器 II - 力扣(LeetCode)

给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。

整数除法仅保留整数部分。

你可以假设给定的表达式总是有效的。所有中间结果将在[-231, 231 - 1]的范围内。

注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如eval()。

示例 1:

输入:s = "3+2*2"输出:7

示例 2:

输入:s = " 3/2 "输出:1

示例 3:

输入:s = " 3+5 / 2 "输出:5

提示:

  • 1 <= s.length <= 3 * 105
  • s由整数和算符('+', '-', '*', '/')组成,中间由一些空格隔开
  • s表示一个有效表达式
  • 表达式中的所有整数都是非负整数,且在范围[0, 231 - 1]内
  • 题目数据保证答案是一个32-bit 整数

394. 字符串解码 - 力扣(LeetCode)

给定一个经过编码的字符串,返回它解码后的字符串。

编码规则为:k[encoded_string],表示其中方括号内部的encoded_string正好重复k次。注意k保证为正整数。

你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。

此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会出现像3a或2[4]的输入。

测试用例保证输出的长度不会超过105。

示例 1:

输入:s = "3[a]2[bc]"输出:"aaabcbc"

示例 2:

输入:s = "3[a2[c]]"输出:"accaccacc"

示例 3:

输入:s = "2[abc]3[cd]ef"输出:"abcabccdcdcdef"

示例 4:

输入:s = "abc3[cd]xyz"输出:"abccdcdcdxyz"

提示:

  • 1 <= s.length <= 30
  • s由小写英文字母、数字和方括号'[]'组成
  • s保证是一个有效的输入。
  • s中所有整数的取值范围为[1, 300]

232. 用栈实现队列 - 力扣(LeetCode)

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):

实现MyQueue类:

  • void push(int x)将元素 x 推到队列的末尾
  • int pop()从队列的开头移除并返回元素
  • int peek()返回队列开头的元素
  • boolean empty()如果队列为空,返回true;否则,返回false

说明:

  • 你只能使用标准的栈操作 —— 也就是只有push to top,peek/pop from top,size, 和is empty操作是合法的。
  • 你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。

示例 1:

输入:["MyQueue", "push", "push", "peek", "pop", "empty"] [[], [1], [2], [], [], []]输出:[null, null, null, 1, 1, false]解释:MyQueue myQueue = new MyQueue(); myQueue.push(1); // queue is: [1] myQueue.push(2); // queue is: [1, 2] (leftmost is front of the queue) myQueue.peek(); // return 1 myQueue.pop(); // return 1, queue is [2] myQueue.empty(); // return false

提示:

  • 1 <= x <= 9
  • 最多调用100次push、pop、peek和empty
  • 假设所有操作都是有效的 (例如,一个空的队列不会调用pop或者peek操作)

进阶:

  • 你能否实现每个操作均摊时间复杂度为O(1)的队列?换句话说,执行n个操作的总时间复杂度为O(n),即使其中一个操作可能花费较长时间。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 2:04:33

关于位置动态数组函数的设计

概述 我们已经完成动态数组&#xff0c;但是将所有方法写在同一个函数里&#xff0c;十分的繁杂&#xff0c;所以要把操作动态数组的所有功能设计成一个个独立的函数。 整体的主函数框架不变&#xff0c;但是要把具体的操作方法拿出来写到另外的函数中。 扩容方法 形式&#xf…

作者头像 李华
网站建设 2026/10/27 2:04:12

超级具身智能核心引擎解析(1):TVA-World-FRA架构下的可解释性决策引擎

前沿技术探索:FRA核心定义与设计理念 FRA(Factorized Robotic Agent, FRA,亦称:因式分解机器人智能体)是一套因式化数实融合一体化新型智能系统,核心设计理念是全链路系统解耦,将机器人作业的感知、推理、动作执行三大核心能力拆解为独立平行子模块,整合为统一、闭环、…

作者头像 李华
网站建设 2026/10/27 2:03:36

通义千问对话bx-ua

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口 等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间点击头像看简介…

作者头像 李华