首页 > 图灵资讯 > 技术篇>正文

LeetCode程序员面试金典:最长有效括号

2023-04-23 09:37:33

  题目:

  给你一个只包含的 '('和 ')字符串,找出最长有效(格式正确且连续)括号子串的长度。

  示例 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; }}

上一篇 LeetCode面试题:删除排序链表中的重复元素
下一篇 掌握云服务新趋势!精解多租户架构,开创企业数字化新纪元!

文章素材均来源于网络,如有侵权,请联系管理员删除。