32. Longest Valid Parentheses
一、题目
1、审题
2、分析:
一个只包含‘(‘、’)’的字符串,求其中正确闭合的子串的最大长度。
二、解答
1、思路:
方法一:
从第一个字符开始遍历,依次求出从遍历的字符开始的最长闭合的字符串长度,从而记录最长闭合的字符串长度。
class Solution {public int longestValidParentheses(String s) {int slen = s.length();if (slen == 0)return 0;int maxLen = 0;for (int i = 0; i < slen - 1 - maxLen; i++) { // 从第一个字符开始,依次遍历int count = 1; // 记录是否闭合if(s.charAt(i) == ')')continue;int tmpLen = 0; int leftLen = 1; // '(' 的个数for (int j = i+1; j < slen; j++) {if(s.charAt(j) == '(') { count++;leftLen++;}else {count--;}if(count < 0)break;if(count == 0) tmpLen = leftLen * 2;}if(tmpLen > maxLen)maxLen = tmpLen;}return maxLen;} }
方法二:
用 Stack 存放 '(' 的下标,碰到 ‘)’只需要栈顶减去此时的下标即为与此‘)’匹配的子串长度,同时对每一个闭合的子串长度加以记录,统计出最大的字符串长。
public class Solution {public int longestValidParentheses(String s) {Stack<Integer> stack = new Stack<Integer>();int target = 0;int left = -1; // 记录 '(' 的下标 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()) target = Math.max(target, i - left);else target = Math.max(target, i - stack.peek());}}}return target;} }
转载于:https://www.cnblogs.com/skillking/p/9440152.html
32. Longest Valid Parentheses相关推荐
- LeetCode 32. Longest Valid Parentheses
问题链接 LeetCode 32. Longest Valid Parentheses 题目解析 给出只包含左右括号的字符串,返回最长的括号匹配字符串长度. 解题思路 括号匹配问题一般借助 栈,便于理 ...
- 32. Longest Valid Parentheses 最长有效括号
Title 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 " ...
- LeetCode Longest Valid Parentheses
原题链接在这里:https://leetcode.com/problems/longest-valid-parentheses/ 题目: Given a string containing just ...
- Longest Valid Parentheses leetcode java
题目: Given a string containing just the characters '(' and ')', find the length of the longest valid ...
- LeetCode算法入门- Longest Valid Parentheses -day12
LeetCode算法入门- Longest Valid Parentheses -day12 Given a string containing just the characters '(' and ...
- 最长有效括号子串长度 c语言,LeetCode: Longest Valid Parentheses (求最长有效匹配括号子串的长度)...
题目描述: Given a string containing just the characters'(' and')', find the length of the longest valid ...
- Leetcode: Longest Valid Parentheses
Question Given a string containing just the characters '(' and ')', find the length of the longest v ...
- 32 Longest Valid Parenthese
32 Longest Valid Parenthese 题意 解法 代码 算法复杂度 注意 题目链接:32 Longest Valid Parenthese 题意 给出一个由字符'('或')'组成的字 ...
- leetcode32 Longest Valid Parentheses
问题描述 * 找出字符串中最长的有效子串,字符串只包括'(' , ')'.何为有效,可参考leetcode20 判断一个字符串是否为有效字符串. 解题思路 介绍动态规划的解法 从倒数第二个元素往前遍历 ...
最新文章
- 实体安全主要指计算机及网络硬件设备,计算机安全中的实体安全主要是指什么?...
- ASP.NET Core 3.x - Endpoint Routing 路由体系的内部机制
- java内部类实现方式_Java内部类详解
- 8、SpringBoot+Mybatis整合------参数取值方式
- django实现搜索功能
- 09面向对象基本概念
- jquery-galleryview-2.0 漂亮多样化的图片特效(多项自定义)
- qq空间认证教程:借助企鹅媒体平台认证QQ公众空间
- 亲戚关系关系算法java程序_亲戚关系计算器 算法实现
- 字幕制作 分享剪辑视频添加滚动字幕的操作步骤
- 【CV】胶囊网络 CapsNet:胶囊之间的动态路由机制
- 拆弹实验-phase_3
- 《大明王朝》掠之于商——沈一石的“盛世”悲歌
- 如何在线进行PDF文档压缩?
- 【云原生|Docker系列6】Docker Compose的命令使用详解
- 利用JSP与JS实现简易购物车
- windows store下载_年度付费软件排行榜这10款软件,你用过5款以上,就算效率达人!Windows平台...
- 苹果系统tft选哪个服务器不卡,tft和ips选哪个 tft和ips区别介绍【图文】
- 2020年服务器的七个发展趋势:数据为王、特定领域的CPU将崛起、机架密度新增一倍以上……...
- 预测2022年CES科技趋势:元宇宙和NFT引关注
热门文章
- python电脑下载方法-python 获取机器snpython下载文件的几种常用方法
- 自学python能赚钱吗-学习Python多久能找到工作?老男孩Python开发培训
- python语言入门m-Python入门基础三-函数
- python简单代码input-Python简单程序的练习
- python在线运行-Python在线练习运行平台
- python小程序-10个Python练手小程序,学习python的很好的资料
- Ubuntu(Linux)上安装ROS缓慢,解决方法:添加ros的国内镜像源,以及ROS安装过程使用rosdep update出现错误:‘The read operation timed out‘
- Fully Convolutional Networks
- lua学习笔记之位及字节
- LeetCode Partition List(链表分段)