【Leetcode 热题 100】20. 有效的括号
问题背景
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s s s,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
数据约束
- 1 ≤ s . l e n g t h ≤ 1 0 4 1 \le s.length \le 10 ^ 4 1≤s.length≤104
- s s s 仅由括号 ‘()[]{}’ 组成
解题过程
经典括号匹配问题,可以用哈希表来映射左右括号辅助匹配,积累一下双大括号的匿名内部类初始化方式。
单纯写判断效率会更高,栈中要存储的是左括号对应的右括号。
具体实现
哈希映射
class Solution {public boolean isValid(String s) {if((s.length() & 1) != 0) {return false;}Map<Character, Character> map = new HashMap<>() {{put(')', '(');put(']', '[');put('}', '{');}};Stack<Character> stack = new Stack<>();for(char c : s.toCharArray()) {if(!map.containsKey(c)) {stack.push(c);} else if(stack.isEmpty() || stack.pop() != map.get(c)) {return false;}}return stack.isEmpty();}
}
直接判断
class Solution {public boolean isValid(String s) {if((s.length() & 1) != 0) {return false;}Stack<Character> stack = new Stack<>();for(char c : s.toCharArray()) {if(c == '(') {stack.push(')');} else if(c == '[') {stack.push(']');} else if(c == '{') {stack.push('}');} else if(stack.isEmpty() || stack.pop() != c) {return false;}}return stack.isEmpty();}
}
相关文章:
【Leetcode 热题 100】20. 有效的括号
问题背景 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s s s,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每…...
比较procfs 、 sysctl和Netlink
procfs 文件系统和 sysctl 的使用: procfs 文件系统(/proc) procfs 文件系统是 Linux 内核向用户空间暴露内核数据结构以及配置信息的一种方式。`procfs` 的挂载点是 /proc 目录,这个目录中的文件和目录呈现内核的运行状况和配置信息。通过读写这些文件,可以查看和控制内…...
Leetcode 3413. Maximum Coins From K Consecutive Bags
Leetcode 3413. Maximum Coins From K Consecutive Bags 1. 解题思路2. 代码实现 题目链接:3413. Maximum Coins From K Consecutive Bags 1. 解题思路 这一题的话思路上整体上就是一个遍历,显然,要获得最大的coin,其选取的范围…...
MakeFile使用指南
文章目录 1. MakeFile 的作用2. 背景知识说明2.1 程序的编译与链接2.2 常见代码的文档结构 3. MakeFile 的内容4. Makefile的基本语法5. 变量定义5.1 一般变量赋值语法5.2 自动化变量 6. 通配符 参考: Makefile教程:Makefile文件编写1天入门 Makefile由浅…...
矩阵碰一碰发视频的视频剪辑功能源码搭建,支持OEM
在短视频创作与传播领域,矩阵碰一碰发视频结合视频剪辑功能,为用户带来了高效且富有创意的内容产出方式。这一功能允许用户通过碰一碰 NFC 设备触发视频分享,并在分享前对视频进行个性化剪辑。以下将详细阐述该功能的源码搭建过程。 一、技术…...
VB.NET CRC32 校验
在 VB.NET 中实现 CRC32 校验并在校验失败时退出程序,你可以按照以下步骤进行: 实现 CRC32 计算函数:首先,你需要一个函数来计算给定数据的 CRC32 值。 比较计算的 CRC32 值:然后,你需要将计算出的…...
冒充者综合征上线了
背景 今天干了一件蠢事儿,上周末咸鱼上有人拍了之前发布的一个java程序,基于 JWT 实现的一个五子棋游戏的源代码。想着反正又没事,就找到了移动硬盘拷贝出那个源代码上传网盘发货了。 今天买家找我说解压不了,我电脑解压正常。就…...
【大模型】百度千帆大模型对接LangChain使用详解
目录 一、前言 二、LangChain架构与核心组件 2.1 LangChain 核心架构 2.2 LangChain 核心组件 三、环境准备 3.1 前置准备 3.1.1 创建应用并获取apikey 3.1.2 开通付费功能 3.2 获取LangChain文档 3.3 安装LangChain依赖包 四、百度千帆大模型对接 LangChain 4.1 LL…...
Redis相关面试
以下是一些在面试中关于 Redis 最常被问到的问题,涵盖了 Redis 的基础概念、数据结构、持久化、主从复制、哨兵、集群、应用场景以及常见的缓存问题等。可以根据自身实际项目经验,结合下面的要点进行深入讲解。 1. Redis 基础与特点 Redis 是什么&#x…...
使用强化学习训练神经网络玩俄罗斯方块
一、说明 在 2024 年暑假假期期间,Tim学习并应用了Q-Learning (一种强化学习形式)来训练神经网络玩简化版的俄罗斯方块游戏。在本文中,我将详细介绍我是如何做到这一点的。我希望这对任何有兴趣将强化学习应用于新领域的人有所帮助…...
java中的日期处理:只显示日期,不显示时间的两种处理方式
需要记录某个操作的操作时间,数据库中该字段为DATE类型; 插入数据的时候,使用数据库函数NOW()获取当前日期并插入: <insert id"batchInsertOrgTestersByProjectId">insert into project_org_testers(project_un…...
腾讯云AI代码助手编程挑战赛——贪吃蛇小游戏
作品介绍 贪吃蛇小游戏需要控制蛇的移动方向,使其吃掉地图上随机出现的食物,每吃掉一个食物,蛇的身体就会增长一格,是一款老少皆宜的小游戏,我们可以用腾讯ai助手生成全部代码,简单方便快捷。 技术架构 …...
水水水水水
为了拿推广卷,但不想把我原本完整的文章拆成零散的多篇,只能出此下策随便发一篇,认真写的都笔记专栏里 5G与未来网络 5G技术一直是近几年讨论的热点。它不仅仅是提升手机上网速度,更是对万物互联(IoT)的一次…...
Spring整合SpringMVC
目录 【pom.xml】文件; 新建【applicationContext.xml】文件 新建【springmvc.xml】文件; 配置【src/main/webapp/WEB-INF/web.xml】文件; 新建【com.gupaoedu.service.IUserService】; 新建【com.gupaoedu.service.impl.Use…...
【Rust自学】10.4. trait Pt.2:trait作为参数和返回类型、trait bound
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 说句题外话,写这篇的时间比写所有权还还花的久,trait是真的比较难理解的概念。 10.4.1. 把trait作为参数 继续以…...
嵌入式系统 (2.嵌入式硬件系统基础)
2.嵌入式硬件系统基础 2.1嵌入式硬件系统的组成 嵌入式硬件系统以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。 嵌入式微处理器 嵌入式微处理器采用冯诺依曼结构或哈佛结构:前者指令和数据共享同一存储空间…...
Linux 下 Vim 环境安装踩坑问题汇总及解决方法(重置版)
导航 安装教程导航 Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(初版)Linux 下Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(重置版)Windows …...
OpenAI 故障复盘 - 阿里云容器服务与可观测产品如何保障大规模 K8s 集群稳定性
本文作者: 容器服务团队:刘佳旭、冯诗淳 可观测团队:竺夏栋、麻嘉豪、隋吉智 一、前言 Kubernetes(K8s)架构已经是当今 IT 架构的主流与事实标准(CNCF Survey[1])。随着承接的业务规模越来越大,用户也在使…...
安卓触摸对焦
1. 相机坐标说明 触摸对焦需要通过setFocusAreas()设置对焦区域,而该方法的参数的坐标,与屏幕坐标并不相同,需要做一个转换。 对Camera(旧版相机API)来说,相机的坐标区域是一个2000*2000,原点…...
jupyter出现“.ipynb appears to have died. It will restart automatically.”解决方法
原因 解决方法:更新jupyter的版本 1.打开anaconda prompt 2、更新jupyter版本 在anaconda prompt输入以下指令 conda update jupyter如图:...
Python爬虫进阶:多线程优化小说爬虫,速度直接提升10倍(实战完整版)
多线程优化小说爬虫,速度直接提升10倍(实战完整版) 在上一篇博文中,我们实现了一款基础的Python小说爬虫,能够批量爬取小说章节、自动优化排版(还原段落换行、空行格式),并自动创建…...
Lychee-Rerank高可用部署架构:基于Docker Compose的多实例负载均衡
Lychee-Rerank高可用部署架构:基于Docker Compose的多实例负载均衡 如果你正在把Lychee-Rerank这类重排序模型用到线上业务里,可能已经发现了一个问题:单个服务实例太脆弱了。流量一上来,服务就卡顿;服务器出点小毛病…...
Bootbox.js终极指南:如何用可复用对话框提升开发效率
Bootbox.js终极指南:如何用可复用对话框提升开发效率 【免费下载链接】bootbox Wrappers for JavaScript alert(), confirm() and other flexible dialogs using Twitters bootstrap framework 项目地址: https://gitcode.com/gh_mirrors/bo/bootbox Bootbox…...
基于Qt框架的桌面应用开发:集成nli-distilroberta-base实现本地文本分析工具
基于Qt框架的桌面应用开发:集成nli-distilroberta-base实现本地文本分析工具 1. 引言:当桌面应用遇上NLP模型 最近在开发一个跨平台的文本分析工具时,遇到了一个有趣的需求:如何让传统桌面应用具备自然语言理解能力?…...
三、选择排序
算法原理一种简单直观的排序算法,其基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。排序步骤初始化:在未排序序列中找到最小…...
揭秘.NET 9全新AI Runtime:如何绕过JIT瓶颈,让ONNX模型推理延迟直降41%?
第一章:.NET 9全新AI Runtime的架构演进与设计哲学.NET 9 引入了原生 AI Runtime,标志着运行时从通用计算平台向智能工作负载优先平台的关键跃迁。其核心并非简单叠加模型推理能力,而是重构执行模型——将提示工程、token 编排、异步流式推理…...
高效备战2026年上海初中古诗文大会【多选题】:背熟这份高频考点
今天距离2026年上海初中古诗文大会启动还有2个多月(通常6月底7月初启动,发布比赛方案和流程),正式比赛还有5个多月(通常10月初开始,分为初选、复选、决选三轮)。现在就读五年级到八年级的上海的…...
论文引用格式太复杂?9种主流标准一键搞定,2026年硕博生必备神器推荐
💡 核心要点 你是否也遇到过这样的崩溃时刻:熬夜写完论文,却被导师的一句"引用格式不规范,重新调整"打回原形?手动调整APA、MLA、GB/T 7714等不同格式,一个标点符号都不能错,一篇论文…...
嵌入式轻量级时间解耦引擎:逻辑Tick与物理循环分离
1. 项目概述bluemicro_engine是一个面向嵌入式实时系统的轻量级时间解耦引擎,其核心设计目标是在硬件资源受限的微控制器(如 Cortex-M0/M3/M4)上,构建一个与用户输入响应、CPU主频波动及外设时序无关的确定性执行循环。它并非通用…...
好写作AI:毕业论文的“智能魔法棒”,解锁学术新境界
在学术的征途中,毕业论文如同一座巍峨的山峰,让无数攀登者既期待又畏惧。它不仅是对多年学习成果的检验,更是个人智慧与创造力的集中展现。但面对复杂的结构、严谨的逻辑、浩瀚的文献,以及那令人头疼的格式要求,你是否…...
