leetcode 32. Longest Valid Parentheses
来源:互联网 发布:下载淘宝网到手机桌面 编辑:程序博客网 时间:2024/05/18 20:32
Given a string containing just the characters '('
and ')'
, find the length of the longest valid (well-formed) parentheses substring.
For "(()"
, the longest valid parentheses substring is "()"
, which has length = 2.
Another example is ")()())"
, where the longest valid parentheses substring is "()()"
, which has length = 4.
分析:
给出一组括号,找出其中连续有效括号的最长长度。
for循环遍历每个括号,当前位置为i,index用于记录每段有效括号的起始位置。
(1)判断当前位置是否是左括号,如果遇到左括号,入栈。
(2)如果不是左括号,
1,判断栈是否为空,如果为空,将index指针后移。
2,如果栈不为空,弹出栈顶元素。
此时,如果栈为空,加上当前位置i的右括号可以构成一段有效的括号,最长为max(maxLen, i到index之间的距离),
如果栈不为空,说明栈顶后一位开始到当前位置可以构成一段有效的括号,那最长为max(maxLen, i到栈顶后一位的长度)。
public class Solution { public int longestValidParentheses(String s) { if (s == null){ return 0; } Stack<Integer> p = new Stack<Integer>(); int maxLen = 0; int index = 0; for (int i = 0; i < s.length(); i++){ if (s.charAt(i) == '('){ p.push(i); }else{ if(p.isEmpty()){ index = i + 1; }else{ p.pop(); if(p.isEmpty()){ maxLen = Math.max(i - index + 1, maxLen); }else{ maxLen = Math.max(i - p.peek(), maxLen); } } } } return maxLen; }}
0 0
- LeetCode --- 32. Longest Valid Parentheses
- LeetCode 32.Longest Valid Parentheses
- [Leetcode] 32. Longest Valid Parentheses
- [LeetCode]32.Longest Valid Parentheses
- [leetcode]32.Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- LeetCode 32. Longest Valid Parentheses
- [leetcode] 32. Longest Valid Parentheses
- LeetCode 32. Longest Valid Parentheses
- LeetCode-32.Longest Valid Parentheses
- leetcode.32. Longest Valid Parentheses
- 【leetcode】32. Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- [LeetCode] 32. Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- leetcode 32.Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- Stingray Traffic Manager10.0 安装
- Servlet 自动生成验证码
- 和其他一些面向对象的编程语言一样,不是所有的变量(方法)都要通过创建对象来调用,还可以通过给变量(方法)加上static关键字来直接调用。
- CFormView侧栏停靠
- 数据结构实验之栈:行编辑器
- leetcode 32. Longest Valid Parentheses
- 2016多校联赛6H (hdu5800) To My Girlfriend
- 微信红包随机算法初探
- android studio UI 通过material palette配置颜色
- 没事别想不开去创业公司,创业时常是一个人的夜路,胆小者勿入。
- 使用tortoiseGit在github上协同开发项目
- Java.Web学习笔记 Struts2
- 重新组织函数(重构手法一)
- HDU1532 Drainage Ditches 网络流模板