当前位置: 首页 > news >正文

2025年--Lc229-32. 最长有效括号(栈)-Java版

1.题目

在这里插入图片描述

2.思路

用栈存“尚未匹配的左括号索引”;额外压入一个哨兵 -1 当“基准起点”。遇到右括号)时先弹出一个左括号(;

若左括号栈空了,说明这个)无法匹配,就把它的索引当成新的基准压栈;

若栈没空,当前有效长度 = 当前索引 i − 栈顶索引,更新答案。

-1 表示“最左侧边界的前一位”。当一开始就出现一段合法串(比如 “()” 从下标 0 开始),长度就能算成 i - (-1)。
如果某个)不匹配,我们把它的下标压栈,充当“新的左边界前一位”。

在这里插入图片描述
在这里插入图片描述

3.代码实现

带测试用例

import java.util.Stack;public class longestValidParentheses {public int longestValid(String s){   //存储括号的索引Stack<Integer> st=new Stack<>();//先push一个哨兵元素,也就是左边界st.push(-1);int max=0;for(int i=0;i<s.length();i++){if(s.charAt(i)=='(')//如果遇到左括号(直接入栈{st.push(i);}else{//遇到右括号st.pop();//先弹出哨兵元素,或者如果有遇到左括号,先弹出左括号if(st.isEmpty())//如果栈为空{//说明)右括号多余,栈中没有匹配的左括号,所以右括号把自己作为标准元素st.push(i);}else{//如果栈不空,说明有多余的左括号max=Math.max(max,i-st.peek());//栈的堆顶元素比如0,对应左括号,所以2-0=2}}}return max;}public static void main(String[] args){String s= ")()())";longestValidParentheses test=new longestValidParentheses();int cnt=test.longestValid(s);System.out.println(cnt);}}

leetcode模式

class Solution {public int longestValidParentheses(String s) {Stack<Integer> st=new Stack<>();//栈记录括号的索引下标int cnt=0;// 关键:放入-1作为参照物st.push(-1);for(int i=0;i<s.length();i++){if(s.charAt(i)=='('){st.push(i);}else//如果是右括号){st.pop();// 弹出一个元素(if(st.isEmpty()){// 如果栈空了, 说明当前的 ')' 没有匹配的 '('// 把当前 ')' 的索引放入,作为新的参照物st.push(i);}else{//如果栈不空,栈存的都是左括号// 长度 = 当前索引 - 新的栈顶索引cnt=Math.max(cnt,i-st.peek());}}}return cnt;}
}
http://www.dtcms.com/a/558353.html

相关文章:

  • 时移世易,篡改天机:吾以 Go 语令 Windows 文件“返老还童“记
  • 做网站的软件是什么网站开发需要逻辑吗
  • 海阳做网站网站建设需要工作计划
  • 通信工程网站建设primitive technology wordpress
  • 响应式网站的费用佛山网站建设邓先生
  • 做单本小说网站怎么样企业网站的建设报价
  • 计算机操作系统:设备驱动程序
  • 长春网站排名提升app软件开发专业公司
  • 网站做关键词首页建设银行网站查余额查询
  • 钢琴演变史
  • 企业建设门户网站的目的国外免费建站网站搭建
  • 【开题答辩全过程】以 二手手机收售系统为例,包含答辩的问题和答案
  • google搜索优化优化seo深圳
  • 为公司建立网站怎么做淘宝网站赚钱
  • springboot默认线程池配置
  • 郑州h5网站建设为新公司取名免费
  • 河南襄县做网站的公司店面设计包括哪些内容
  • 基础微网站开发价位青岛市住房和城乡建设局网站
  • 珠海模板开发建站把自己做的动画传到哪个网站上
  • 京东商城 网站建设山东济铁工程建设集团有限公司网站
  • 文本网站代码空两格怎么做网站上传权限
  • 建设派网站建立自己网站的好处
  • C++笔记(面向对象)静态联编和动态联编
  • 【递归、回溯、搜索】专题六:记忆化搜索
  • 网站页面描述怎么写咸阳鑫承网站建设
  • 如何在百度举报网站桂林市临桂区
  • 一个可以做行程的网站网站虚拟主机1g
  • 网站标题和关键词一样网页版微信登录不了怎么解决
  • 2015年做啥网站能致富wordpress 导出export.php
  • 开网站做商城怎么样北京ui网页设计培训