#yyds干货盘点# leetcode算法题: 最长有效括号
Posted 灰太狼_cxh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# leetcode算法题: 最长有效括号相关的知识,希望对你有一定的参考价值。
题目:
给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
示例 1:
输入:s = "(()"
输出:2
解释:最长有效括号子串是 "()"
示例 2:
输入:s = ")()())"
输出:4
解释:最长有效括号子串是 "()()"
示例 3:
输入:s = ""
输出:0
代码实现:
class Solution
public int longestValidParentheses(String s)
int maxans = 0;
int[] dp = new int[s.length()];
for (int i = 1; i < s.length(); i++)
if (s.charAt(i) == ))
if (s.charAt(i - 1) == ()
dp[i] = (i >= 2 ? dp[i - 2] : 0) + 2;
else if (i - dp[i - 1] > 0 && s.charAt(i - dp[i - 1] - 1) == ()
dp[i] = dp[i - 1] + ((i - dp[i - 1]) >= 2 ? dp[i - dp[i - 1] - 2] : 0) + 2;
maxans = Math.max(maxans, dp[i]);
return maxans;
以上是关于#yyds干货盘点# leetcode算法题: 最长有效括号的主要内容,如果未能解决你的问题,请参考以下文章