leetcode第20题

简介: 括号匹配问题。如果只有一种括号,我们完全可以用一个计数器 count ,遍历整个字符串,遇到左括号加 1 ,遇到右括号减 1,遍历结束后,如果 count 等于 0 ,则表示全部匹配。但如果有多种括号,像 ( [ ) ] 这种情况它依旧会得到 0,所以我们需要用其他的方法。栈!遍历整个字符串,遇到左括号就入栈,然后遇到和栈顶对应的右括号就出栈,遍历结束后,如果栈为空,就表示全部匹配。

image.png

top20

括号匹配问题。

如果只有一种括号,我们完全可以用一个计数器 count ,遍历整个字符串,遇到左括号加 1 ,遇到右括号减 1,遍历结束后,如果 count 等于 0 ,则表示全部匹配。但如果有多种括号,像 ( [ ) ] 这种情况它依旧会得到 0,所以我们需要用其他的方法。

栈!

遍历整个字符串,遇到左括号就入栈,然后遇到和栈顶对应的右括号就出栈,遍历结束后,如果栈为空,就表示全部匹配。

publicbooleanisValid(Strings) {
Stack<Character>brackets=newStack<Character>(); 
for(inti=0;i<s.length();i++){
charc=s.charAt(i);
switch(c){
case'(':
case'[':
case'{':
brackets.push(c); 
break;
case')':
if(!brackets.empty()){
if(brackets.peek()=='('){
brackets.pop();
                    }else{
returnfalse;
                    }
                }else{
returnfalse;
                }
break;
case']':
if(!brackets.empty()){
if(brackets.peek()=='['){
brackets.pop();
                    }else{
returnfalse;
                    }
                }else{
returnfalse;
                }
break;
case'}':
if(!brackets.empty()){
if(brackets.peek()=='{'){
brackets.pop();
                    }else{
returnfalse;
                    }
                }else{
returnfalse;
                }
        }
    }
returnbrackets.empty();
}

时间复杂度:O(n)。

空间复杂度:O(n)。

如果学过数据结构,一定写过计算器,括号匹配问题一定遇到过的。

相关文章
|
1月前
|
存储 数据可视化 项目管理
Arya - 功能强大的在线 Markdown 编辑器
Arya(二丫)是一款基于Vue2与Vditor的开源在线Markdown编辑器,集流程图、甘特图、Echarts、PPT预览、五线谱等丰富功能于一体,支持多种编辑模式与一键导出PDF/图片,完美适配公众号等内容平台,3.3k+ GitHub stars,部署简单,体验优雅。
365 13
Arya - 功能强大的在线 Markdown 编辑器
|
18天前
|
缓存 监控 网络协议
如何让 IPv6 站支持 IPv4/IPv6 访问
D-NET 是一款轻量级开源工具,助力家庭部署的 IPv6 站点实现 IPv4/IPv6 双栈访问。通过对接阿里云、百度智能云 CDN,自动同步动态 IPv6 地址,解决运营商封端口、地址变动等问题。支持未备案域名(阿里云全球加速)与已备案域名(推荐百度云),低成本、高效率搭建稳定可访问的个人站点,适用于 NAS、博客、Home Assistant 等多种场景。
228 0
如何让 IPv6 站支持 IPv4/IPv6 访问
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
AI内容创作Agent架构解析:基于移动端原生框架的内容特工队AI (ReelsAgent)与传统短视频工具的技术差异
传统的AI视频工具链往往基于单点功能堆栈或PC/Web端的SaaS架构,难以承载短视频营销所需的高频、高并发、全流程自动化需求。本文将从AI Agent系统架构角度,对比内容特工队AI (ReelsAgent)的移动端原生设计与现有主流工具的实现路径,以评估其在工程实践中的优劣。
268 7
|
2月前
|
并行计算 测试技术 异构计算
Qwen3 Next 在 TensorRT LLM 上的部署指南
本指南介绍如何在TensorRT LLM框架上部署Qwen3-Next-80B-A3B-Thinking模型,基于默认配置实现快速部署。涵盖环境准备、Docker容器启动、服务器配置与性能测试,支持BF16精度及MoE模型优化,适用于NVIDIA Hopper/Blackwell架构GPU。
781 154
|
1月前
|
数据可视化 JavaScript 前端开发
Three.js:开启Web 3D世界的魔法钥匙
Three.js是基于WebGL的JavaScript 3D库,简化了网页中3D图形的创建与渲染。它提供场景、相机、光照、动画等完整架构,支持丰富几何体、材质及高级特效,助力开发者轻松实现交互式3D可视化。
235 6
|
2月前
|
人工智能 运维 专有云
持续领先!阿里云入选2025年Gartner®分布式混合基础设施魔力象限
近日,Gartner发布2025年《分布式混合基础设施魔力象限》报告,在混合云场景下,阿里云凭借飞天企业版(Apsara Stack)、边缘云ENS和云盒CloudBox产品组合能力,在“执行能力”和“愿景完整性”两大维度分别处于亚太厂商中最高最远的位置。
236 6
|
1月前
|
数据采集 传感器 人工智能
数字孪生:虚实融合驱动产业变革的核心技术引擎
数字孪生技术正从概念走向产业核心,广泛应用于智能制造、智慧能源、智慧城市等领域,实现全生命周期管理与智能决策。本文系统解析其技术本质、核心体系、应用实践及未来趋势,并结合奥维数字等本土企业案例,展现中国在该领域的创新突破与产业化前景。
707 0
|
9月前
|
人工智能 运维 Serverless
Serverless + AI 让应用开发更简单
Serverless + AI 让应用开发更简单
365 2
|
Kubernetes Cloud Native 数据可视化
我们为何选择 Cilium 作为 Kubernetes CNI
我们为何选择 Cilium 作为 Kubernetes CNI
560 0
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
772 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介