
LeetCode-32.最长有效括号
创建一个与字符串长度相等的数组 初始化所有 从左到右遍历字符串,逐个字符处理: 在每一步更新完 初始化数组 遍历字符串,从第二个字符开始处理。 当遇到'('时,利用后面的字符继续处理。 当遇到')'时,查找前一个有效括号的位置,如果没有匹配的'(',则跳过。 计算当前有效括号的长度,并更新 保留每次遍历后的最大有效括号子串长度。
发布日期:2025-04-05 02:47:51
浏览次数:12
分类:精选文章
本文共 1214 字,大约阅读时间需要 4 分钟。
要解决这个问题,我们需要找出一个只包含括号'()'的字符串中最长的有效括号子串的长度。动态规划是一种有效的方法来解决这个问题,因为它可以帮助我们逐步构建和记录有效括号子串的长度。
方法思路
我们可以通过动态规划来解决这个问题。具体步骤如下:
dp
,其中dp[i]
记录到当前位置为止的最长有效括号子串的长度。dp
值为0。- 如果遇到'(',跳过,继续处理下一个字符。
- 如果遇到')',查看前一个字符是否有效匹配括号:
- 获取
dp[i-1]
,如果dp[i-1]
为0,说明前一个字符没有匹配的'(',跳过。 - 计算索引
j = i - dp[i-1] - 1
,跳过到该索引位置的后面部分。 - 如果前后括号匹配成功,即
s[j] == '('
,说明当前字符和前一个匹配字符形成一个完整的括号对。 - 更新
dp[i]
为dp[i-1] + 2
。如果存在前面有效括号子串的前一个位置的dp
值不为零,说明有连续的有效括号,继续加上对应的值。
- 获取
dp[i]
后,检查当前的最大值max
,并记录最大的有效括号子串的长度。解决代码
public int longestValidParentheses(String s) { int len = s.length(); int max = 0; int[] dp = new int[len]; for (int i = 1; i < len; i++) { if (s.charAt(i) != '(') { int j = i - dp[i-1] - 1; if (j >= 0 && s.charAt(j) == '(' && dp[j] > 0) { dp[i] = dp[i-1] + 2; if (j > 0 && dp[j - dp[j]] != 0) { dp[i] += dp[j - dp[j]]; } max = Math.max(max, dp[i]); } } } return max;}
代码解释
dp
和最大有效括号子串长度max
。dp[i]
值,同时处理连续有效括号的情况。这种方法通过动态规划记录了每个位置的有效括号长度,确保了在一个单独的遍历中可以高效地解决这个问题。
发表评论
最新留言
不错!
[***.144.177.141]2025年05月10日 18时09分36秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leaflet军事标绘-细直线箭头绘制(leaflet篇.82)
2025-04-04
leaflet删除所有图层(leaflet篇.25)
2025-04-04
leaflet加载接入天地图(leaflet篇.1)
2025-04-04
leaflet加载接入百度地图(leaflet篇.2)
2025-04-04
leaflet加载接入腾讯矢量、腾讯影像地图(leaflet篇.4)
2025-04-04
leaflet动态热力图分析(leaflet篇.16)
2025-04-04
leaflet动态热力图(大数据版)(leaflet篇.17)
2025-04-04
leaflet区域聚合点(点击后散开并进行合理定位)(leaflet篇.22)
2025-04-04
leaflet叠加geojson图层(leaflet篇.38)
2025-04-04
leaflet叠加geojson图层(挖洞)(leaflet篇.43)
2025-04-04
leaflet叠加多个面(面的数据结构)(leaflet篇.62)
2025-04-04
leaflet图标跳动(leaflet篇.45)
2025-04-04
leaflet地图无级别缩放(移动端)(leaflet篇.76)
2025-04-04
leaflet实现wms服务面要素可点击(leaflet篇.30)
2025-04-04
Leaflet快速入门与加载OSM显示地图
2025-04-04
leaflet接入geoserver发布的热力图服务(leaflet篇.29)
2025-04-04
leaflet接入土地资源(leaflet篇.55)
2025-04-04
leaflet接入天地图(经纬度投影256)(leaflet篇.24)
2025-04-04
leaflet点采集与点编辑(leaflet篇.5)
2025-04-04