Leetcode 32.最长有效括号
最长有效括号
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
示例 1:
输入: "(()"
输出: 2
解释: 最长有效括号子串为 "()"
示例 2:
输入: ")()())"
输出: 4
解释: 最长有效括号子串为 "()()"
设置两个指针,一个表示左括号open的个数 ,另一个表示右括号close的个数。
方法:两次遍历操作,第一次从前往后遍历,第二次从后向前遍历。 因此时间复杂度为O(n)
1.从左向右扫描,当遇到左括号时,open++,当遇到右括号时,close++
如果open==close,那么需要对最长长度max进行更新操作 max = Math.max(max , 2*open)
如果 close > open ,说明右括号个数大于左括号个数,已经不满足合法性,则重新设置open=0, close=0
2.从右向左扫描,当遇到右括号时close++,当遇到左括号时,open++
如果close==open,那么更新max即 max = Math.max(max , 2*close)
如果open>close ,说明右括号个数大于左括号个数,已经不满足合法性,则重新设置open=0 ,close =0
1 class Solution { 2 public int longestValidParentheses(String s) { 3 int right=0,left=0,ans=0; 4 int len=s.length(); 5 for(int i=0;i<len;i++){ 6 if(s.charAt(i)=='(') 7 left++; 8 else 9 right++; 10 if(left==right){ 11 ans=Math.max(ans,2*right); 12 }else if(right>left) 13 left=right=0; 14 } 15 left=right=0; 16 for(int i=len-1;i>=0;i--){ 17 if(s.charAt(i)==')') 18 right++; 19 else 20 left++; 21 if(right==left) 22 ans=Math.max(ans,2*left); 23 else if(left>right) 24 left=right=0; 25 } 26 return ans; 27 } 28 }
转载于:https://www.cnblogs.com/kexinxin/p/10163001.html
Leetcode 32.最长有效括号相关推荐
- Leetcode 32 最长合法括号子序列
算法特辑–动态规划 Leetcode 32 最长合法括号子序列 给定只有"(" 和 ")" 的字符串,求出最长的合法括号子序列. 例如:"())&qu ...
- leetcode:32. 最长有效括号
32. 最长有效括号 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/longest-valid-parentheses/ 给你一个只包含 '(' 和 ...
- LeetCode 32. 最长有效括号(栈DP)
文章目录 1. 题目信息 2. 栈 解题 3. 动态规划 解题 1. 题目信息 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1:输入: "(() ...
- LeetCode 32最长有效括号(困难)
维护不易,还请点个赞赞,如果想加入还请关注公众号bigsai回复进群加入打卡. 题目描述 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: &qu ...
- leetcode 32. 最长有效括号
题目 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()& ...
- LeetCode 32 最长有效括号
https://leetcode-cn.com/problems/longest-valid-parentheses/ 解决方案 class Solution {public int longestV ...
- 32. 最长有效括号
32. 最长有效括号 题目描述 给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度. 示例1: 输入:s = "(()" 输出:2 解释:最 ...
- 【LeetCode笔记】32. 最长有效括号(Java、动态规划、栈、字符串)
文章目录 题目描述 代码 & 解析 1. 栈做法 2. 动态规划 题目描述 (括号题真的好烦人) 讲道理,题目一看,大概率就是用dp做 代码 & 解析 1. 栈做法 这个做法我没实际写 ...
- [力扣]32. 最长有效括号(三解法)
解法一:栈 class Solution:def longestValidParentheses(self, s: str) -> int:q = []st = -1res = 0for i i ...
最新文章
- springBoot 搭建web项目(前后端分离,附项目源代码地址)
- 2020 年技术趋势一览:AutoML、联邦学习、云寡头时代的终结
- CodeForces - 707C
- ffmpeg之常用命令的学习
- 深入浅出JS:Two
- 人工智能产业链深度透析—基础层
- CSU 1803 2016(数论)
- 现实给了梦想多少时间?
- [Regionals 2012 :: Asia - Tokyo ]
- 多看系统下载_制冷系统压力检测有多重要?看了你就知道了
- tomcat/redis/dubbo/netty
- VMware workstations pro16.23已经安装vmware tool,Ubuntu仍然无法复制粘贴
- jtopo连线绘制脉冲动画效果
- 服务器桌面假死怎么处理,win10桌面假死如何解决
- 分辨率单位及换算,LW / PH、LP / mm、L / mm、Cycles / mm、Cycles / pixel、LP / PH
- 社区志愿者招募管理系统
- Python如何自动操作电脑桌面应用程序
- PCI Express学习篇---Power Management(二)
- 弹簧质量阻尼器的动力学
- 招商银行西安分行暑期实习生应聘流程