当前位置:网站首页>每日一题-最长有效括号-0724
每日一题-最长有效括号-0724
2022-08-05 05:17:00 【菜鸡程序媛】
题目
给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
思路
- 括号匹配题目优先从栈的角度切入,本题中需要找到最长的括号子串的长度,通过数组的下标进行匹配
- 优先入栈一个-1的下标,作为栈底的元素(保证栈不会空)
- 遇到左括号的时候入栈,右括号的时候先弹出当前的栈顶元素,如果这个时候栈非空,证明之前入栈过左括号,满足括号对的前提要求;如果是空的,右括号的下标入栈,保证栈不会是空的,还有一点就是后面有满足要求的括号对的时候,作为栈顶下标元素计算当前子串的长度
- 最后通过sum不断迭代,更新当前的最大值
代码
class Solution {
public int longestValidParentheses(String s) {
if(s == null || s.length() <= 0)
return 0;
Stack<Integer> stack = new Stack<>();
int sum = 0;
//站岗
stack.push(-1);
for(int i = 0; i < s.length(); i ++){
if(s.charAt(i) == '('){
stack.push(i);
}else{
stack.pop();
if(stack.isEmpty()){
stack.push(i);
}else{
sum = Math.max(sum, i - stack.peek());
}
}
}
return sum;
}
}
边栏推荐
- MaskDistill-不需要标注数据的语义分割
- MSRA提出学习实例和分布式视觉表示的极端掩蔽模型ExtreMA
- 表情捕捉的指标/图像的无参考质量评价
- Polygon计算每一个角的角度
- Service
- SQL (2) - join window function view
- SQL(1) - Add, delete, modify and search
- LeetCode刷题之第746题
- [Kaggle project actual combat record] Steps and ideas sharing of a picture classification project - taking leaf classification as an example (using Pytorch)
- IT系统运行维护方法及策略
猜你喜欢
随机推荐
LeetCode刷题之第74题
将一句话的单词进行倒置(C语言纯代码)
CVPR 2020 - 频谱正则化
CVPR最佳论文得主清华黄高团队提出首篇动态网络综述
【Promise高级用法】实现并行和串行API
HuiFer 带你读懂 BeanFactory getBean 方法
SharedPreferences and SQlite database
1004 成绩排名 (20 分)
TinyFlashDB:一种超轻量的可纠错的通用单片机flash存储方案
Redis设计与实现(第三部分):多机数据库的实现
PoE视频监控解决方案
栈的应用——力扣 20.有效的括号
C语言联合体union占用空间大小问题
Jupyter notebook选择不同的Anaconda环境作为内核运行
浅谈遇到的小问题
对象比较
关于存储IOPS你必须了解的概念
Tensorflow steps on the pit notes and records various errors and solutions
深度学习系列(一)简介、线性回归与成本函数
原来何恺明提出的MAE还是一种数据增强









