news 2026/4/15 22:32:57

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/4/16 14:04:17

大模型产品经理完整学习路线,从零基础到实战全覆盖,附免费学习资源_2026最新

文章详细介绍了大模型产品经理的五个阶段学习路径&#xff1a;基础知识、大模型技术、产品管理、实战经验和持续提升。内容涵盖计算机科学、人工智能基础、大模型技术概览、产品思维培养及实战项目经验。同时提供了丰富的学习资源&#xff0c;包括学习路线图、视频教程、技术文…

作者头像 李华
网站建设 2026/4/13 21:11:17

西门子PLC实现冷热水恒压供水系统开发之旅

西门子Siemens PLc程序&#xff0c;TiA博途V15.1 V16 V17版冷热水恒压供水系统&#xff0c;变频器控制&#xff0c;模拟量输入和输出处理&#xff0c;温度控制&#xff0c;流量计算控制&#xff0c;配方控制&#xff0c;LAd和ScL语言 在自动化控制领域&#xff0c;西门子的PLC配…

作者头像 李华
网站建设 2026/4/12 4:25:45

直流电机双闭环调速系统这玩意儿,搞过电机控制的都知道它有多实用。今天咱们直接上手拆解一个已经调好的Simulink模型,手把手看看怎么让电机转速稳如老狗

直流电机双闭环调速系统仿真模型 转速电流双闭环调速系统Matlab/Simulink仿真模型。 内外环均采用PI调节器&#xff0c;本模型具体直流电机模块、三相电源、同步6脉冲触发器、双闭环、负载、示波器模块搭建。 所有参数都已经调试好了&#xff0c;仿真波形完美&#xff0c;可以直…

作者头像 李华
网站建设 2026/3/30 15:10:51

C#上位机源代码,采集西门子200smart温度数据并显示波形曲线,温度到达上限值或下限值进行...

C#上位机源代码&#xff0c;采集西门子200smart温度数据并显示波形曲线&#xff0c;温度到达上限值或下限值进行报警提示。 采集的数据每天生成一个excel报表&#xff0c;全套源代码系统概述 本系统是一个基于C#开发的西门子PLC温度数据采集与监控平台&#xff0c;专门用于实时…

作者头像 李华