【LeetCode-面试算法经典-Java实现】【032-Longest Valid Parentheses(最长有效括号)】
来源:互联网 发布:linux查看服务器ip 编辑:程序博客网 时间:2024/06/03 16:00
【032-Longest Valid Parentheses(最长有效括号)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
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.
题目大意
给定一个字符串,只包含小括号号,求最长的合法的小括号的数目。
解题思路
使用栈来实现
代码实现
算法实现类
import java.util.Deque;import java.util.LinkedList;import java.util.Stack;public class Solution { public int longestValidParentheses(String s) { // 用于记录待匹配的左括号和右括号的位置 Stack<Integer> st = new Stack<>(); int max = 0; for (int i = 0; i < s.length(); i++) { // 如是当前字符是右括号,并且记录栈非空,并且前一个字符是左括号 if (s.charAt(i) == ')' && !st.isEmpty() && s.charAt(st.peek()) == '(') { // 左括号出栈 st.pop(); // 求最大值 max = Math.max(max, i - ((st.isEmpty()) ? -1 : st.peek())); } // 其它情况就将字符入栈 else { st.push(i); } } return max; }}
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
特别说明
欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/47064939】
2 0
- 【LeetCode-面试算法经典-Java实现】【032-Longest Valid Parentheses(最长有效括号)】
- LeetCode 32 Longest Valid Parentheses(最长有效括号)(*)
- LeetCode--Longest Valid Parentheses(最长有效的括号)
- LeetCode | Longest Valid Parentheses(最长有效的括号匹配)
- LeetCode OJ 之 Longest Valid Parentheses (最长有效括号)
- LeetCode 32. Longest Valid Parentheses(最长有效括号)
- Longest Valid Parentheses(最长的括号匹配)【面试算法leetcode】
- 【LeetCode-面试算法经典-Java实现】【020-Valid Parentheses(括号验证)】
- 最长连续有效括号 Longest Valid Parentheses @LeetCode
- LeetCode----32. Longest Valid Parentheses(最长有效括号)
- LeetCode-32.Longest Valid Parentheses最长有效括号子串
- leetcode 32. Longest Valid Parentheses 最长有效括号长度
- Longest Valid Parentheses 最长的有效括号
- Longest Valid Parentheses(最长有效括号串)
- [LeetCode] 最长合法括号 longest valid parentheses
- 【LeetCode】最长括号匹配Longest Valid Parentheses
- LeetCode: Longest Valid Parentheses (求最长有效匹配括号子串的长度)
- Leetcode刷题记——32. Longest Valid Parentheses(最长有效括号)
- 接口防刷,痛的领悟
- 黑马程序员——java基础——Java概述
- 【LeetCode-面试算法经典-Java实现】【030-Substring with Concatenation of All Words(串联所有单词的子串)】
- 并查集hdu1232
- C++面向对象(六)继承的static关键字
- 【LeetCode-面试算法经典-Java实现】【032-Longest Valid Parentheses(最长有效括号)】
- 【LeetCode-面试算法经典-Java实现】【033-Search in Rotated Sorted Array(在旋转数组中搜索)】
- linux线程初学之实现打字母功能
- 装备收集
- 查看Linux服务器的所占用的IP地址
- Spring Data MongoDB 二:添加、删除操作
- 服务器处理能力,你估算正确过吗?
- Spark专家 王家林系列Scala 课程 (1)
- 新博客,新起点!