一、题目

  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相关推荐

  1. LeetCode 32. Longest Valid Parentheses

    问题链接 LeetCode 32. Longest Valid Parentheses 题目解析 给出只包含左右括号的字符串,返回最长的括号匹配字符串长度. 解题思路 括号匹配问题一般借助 栈,便于理 ...

  2. 32. Longest Valid Parentheses 最长有效括号

    Title 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 " ...

  3. LeetCode Longest Valid Parentheses

    原题链接在这里:https://leetcode.com/problems/longest-valid-parentheses/ 题目: Given a string containing just ...

  4. Longest Valid Parentheses leetcode java

    题目: Given a string containing just the characters '(' and ')', find the length of the longest valid ...

  5. LeetCode算法入门- Longest Valid Parentheses -day12

    LeetCode算法入门- Longest Valid Parentheses -day12 Given a string containing just the characters '(' and ...

  6. 最长有效括号子串长度 c语言,LeetCode: Longest Valid Parentheses (求最长有效匹配括号子串的长度)...

    题目描述: Given a string containing just the characters'(' and')', find the length of the longest valid ...

  7. Leetcode: Longest Valid Parentheses

    Question Given a string containing just the characters '(' and ')', find the length of the longest v ...

  8. 32 Longest Valid Parenthese

    32 Longest Valid Parenthese 题意 解法 代码 算法复杂度 注意 题目链接:32 Longest Valid Parenthese 题意 给出一个由字符'('或')'组成的字 ...

  9. leetcode32 Longest Valid Parentheses

    问题描述 * 找出字符串中最长的有效子串,字符串只包括'(' , ')'.何为有效,可参考leetcode20 判断一个字符串是否为有效字符串. 解题思路 介绍动态规划的解法 从倒数第二个元素往前遍历 ...

最新文章

  1. 实体安全主要指计算机及网络硬件设备,计算机安全中的实体安全主要是指什么?...
  2. ASP.NET Core 3.x - Endpoint Routing 路由体系的内部机制
  3. java内部类实现方式_Java内部类详解
  4. 8、SpringBoot+Mybatis整合------参数取值方式
  5. django实现搜索功能
  6. 09面向对象基本概念
  7. jquery-galleryview-2.0 漂亮多样化的图片特效(多项自定义)
  8. qq空间认证教程:借助企鹅媒体平台认证QQ公众空间
  9. 亲戚关系关系算法java程序_亲戚关系计算器 算法实现
  10. 字幕制作 分享剪辑视频添加滚动字幕的操作步骤
  11. 【CV】胶囊网络 CapsNet:胶囊之间的动态路由机制
  12. 拆弹实验-phase_3
  13. 《大明王朝》掠之于商——沈一石的“盛世”悲歌
  14. 如何在线进行PDF文档压缩?
  15. 【云原生|Docker系列6】Docker Compose的命令使用详解
  16. 利用JSP与JS实现简易购物车
  17. windows store下载_年度付费软件排行榜这10款软件,你用过5款以上,就算效率达人!Windows平台...
  18. 苹果系统tft选哪个服务器不卡,tft和ips选哪个 tft和ips区别介绍【图文】
  19. 2020年服务器的七个发展趋势:数据为王、特定领域的CPU将崛起、机架密度新增一倍以上……...
  20. 预测2022年CES科技趋势:元宇宙和NFT引关注

热门文章

  1. python电脑下载方法-python 获取机器snpython下载文件的几种常用方法
  2. 自学python能赚钱吗-学习Python多久能找到工作?老男孩Python开发培训
  3. python语言入门m-Python入门基础三-函数
  4. python简单代码input-Python简单程序的练习
  5. python在线运行-Python在线练习运行平台
  6. python小程序-10个Python练手小程序,学习python的很好的资料
  7. Ubuntu(Linux)上安装ROS缓慢,解决方法:添加ros的国内镜像源,以及ROS安装过程使用rosdep update出现错误:‘The read operation timed out‘
  8. Fully Convolutional Networks
  9. lua学习笔记之位及字节
  10. LeetCode Partition List(链表分段)