news 2026/4/23 9:31:00

Hot100——栈

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hot100——栈

有效的括号

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

有效字符串需满足:

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

示例 1:

输入:s = "()"

输出:true

示例 2:

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

输出:true

示例 3:

输入:s = "(]"

输出:false

示例 4:

输入:s = "([])"

输出:true

示例 5:

输入:s = "([)]"

输出:false

提示:

  • 1 <= s.length <= 104
  • s仅由括号'()[]{}'组成
class Solution: def isValid(self, s: str) -> bool: if len(s) % 2 == 1: return False pairs = { ")": "(", "]": "[", "}": "{", } stack = list() for ch in s: if ch in pairs: if not stack or stack[-1] != pairs[ch]: return False stack.pop() else: stack.append(ch) return not stack

最小栈

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

实现MinStack类:

  • MinStack()初始化堆栈对象。
  • void push(int val)将元素val推入堆栈。
  • 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
  • poptopgetMin操作总是在非空栈上调用
  • push,pop,top, andgetMin最多被调用3 * 104

借用了一个辅助栈min_stack[ ]

class MinStack: def __init__(self): self.stack = [] self.min_stack = [math.inf] def push(self, val: int) -> None: self.stack.append(val) self.min_stack.append(min(val, self.min_stack[-1])) def pop(self) -> None: self.stack.pop() self.min_stack.pop() def top(self) -> int: return self.stack[-1] def getMin(self) -> int: return self.min_stack[-1] # Your MinStack object will be instantiated and called as such: # obj = MinStack() # obj.push(val) # obj.pop() # param_3 = obj.top() # param_4 = obj.getMin()

字符串解码

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 12:19:16

Flutter---时间核心类

DateTime - 基础时间类// 创建 DateTime 对象 DateTime now DateTime.now(); // 当前时间 DateTime specific DateTime(2024, 1, 15); // 指定日期 (年,月,日) DateTime detailed DateTime(2024, 1, 15, 10, 30); // 指定日期时间 (年,月,日,时,分…

作者头像 李华
网站建设 2026/4/18 1:12:22

aa---(6)

26.My EasterFocus QuestionWhat does the girl do on Easter?basket Easter(复活节) candy eggs dress familytextMy dress.My hat.My basket.My eggs.My candy.My flowers.My family.My Easter.ConnectionsEaster is a holiday.What are other holidays&#xff1f;Make a l…

作者头像 李华
网站建设 2026/4/17 22:28:26

53、UART 串口通信

UART 串口通信&#xff08;51单片机Modbus协议&#xff09; 一、UART 核心概念与特性 UART&#xff08;Universal Asynchronous Receiver Transmitter&#xff09; 通用异步收发器&#xff0c;是MCU与外部设备异步通信的硬件接口模块&#xff0c;核心特性如下&#xff1a; 异步…

作者头像 李华
网站建设 2026/4/18 2:49:01

电力电子工程师简历优化指南:从“简历泥潭”到入职邀约,只需三招

为什么你的技术简历总石沉大海&#xff1f;痛点切入&#xff1a;据技术招聘平台数据&#xff0c;超过 68% 的电力电子工程师简历&#xff0c;在招聘方初筛时的停留时间不足 15 秒。这些简历普遍存在“技术堆砌、成果模糊、价值迷失”的泥潭&#xff0c;如同一位只会展示所有扳手…

作者头像 李华
网站建设 2026/4/17 23:00:09

防火墙双机热备01(主备模式)

知识背景 VRRP是通用的、标准的三层冗余协议&#xff1b;HRP是华为防火墙专用的、深度的状态与配置同步协议。 防火墙使用VRRP是基础&#xff0c;但仅靠VRRP无法实现真正的业务不中断。 VRRP的定位与局限&#xff08;在防火墙场景下&#xff09; VRRP是一个网络层协议&#xf…

作者头像 李华
网站建设 2026/4/18 2:43:55

【码力全开特辑直播预告】1月15日晚7点,AscendNPU IR架构开源解读

【昇腾CANN】视频号、B站、昇腾社区多平台直播 &#xff0c;弹幕答题互动赢取惊喜定制礼&#xff01;通过Ascend C算子开发能力认证&#xff08;中级&#xff09;&#xff0c;完成社区任务、分享学习成果、优秀嘉宾分享&#xff0c;可赢取华为三折叠、笔记本电脑等超级大奖&…

作者头像 李华