62.Longest Valid Parentheses(最长的有效括号)
2024-08-26 05:40:10
Level:
Medium
题目描述:
Given a string containing just the characters '('
and ')'
, find the length of the longest valid (well-formed) parentheses substring.
Example 1:
Input: "(()"
Output: 2
Explanation: The longest valid parentheses substring is "()"
Example 2:
Input: ")()())"
Output: 4
Explanation: The longest valid parentheses substring is "()()"
思路分析:
设置一个栈,遍历字符串,如果遇到‘(’,将它对应的下标存放进栈,遇到‘)’,其下标为i,弹出栈顶元素,计算 i-stack.pop()更新res,直到遍历结束,得到最大的res。
代码:
public class Solution{
public int longestValidParentheses(String s){
Stack<Integer>stack=new Stack<>();
int left=-1;
int res=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='(')
stack.push(i);
else{
if(stack.isEmpty())
left=i; //一开始出现‘)’
else{
stack.pop();
if(stack.isEmpty())
res=Math.max(res,i-left);
else
res=Math.max(res,i-stack.peek());
}
}
}
return res;
}
}
最新文章
- C#在二维码中添加圆角logo
- ecshop 变量表
- ubuntu 下mongodb安装
- 福建红色文化VR/AR实体体验馆正式启用
- WebApi:使用方法名或者控制器名作为接口地址
- Angularjs中对时间格式:/Date(1448864369815)/ 的处理
- Android性能分析工具介绍
- POJ3630——简单Trie树
- set(二叉搜索树)
- JQuery常用API 核心 效果 JQueryHTML 遍历 Event事件
- Emmet插件详解
- Object.prototype.toString.call(obj)使用方法以及原理
- SQL行转列与列转行(转)
- dubbo 用来做什么
- [Windows端口占用] 找到占用端口的进程并杀死
- 十六、Mediator 仲载者设计模式
- GitHub--创建新的分支(转)
- Docker 执行nginx以及简单进入container
- QT中QLineEdit的editingFinished()信号在按下回车时会触发两次的解决办法
- Authentication required (packagist.phpcomposer.com) 账号密码到哪里获取?
热门文章
- vue.js(7)--vue中的样式绑定
- 浏览器如何减少 reflow/repaint
- Linux下svn回滚
- 使用transporter同步MongoDB数据到es
- 164-基于TI DSP TMS320C6455和Altera FPGA EP2S130的Full CameraLink PDS150接口板卡
- Mysql --09 Innodb核心特性——事务
- BZOJ2280 [Poi2011]Plot 二分+倍增+最小圆覆盖
- Hadoop的基础命令
- 【Linux】运维常用命令
- java使用开源类库Tesseract实现图片识别