当前位置: 首页 > news >正文

【Hot100】LeetCode—32. 最长有效括号

目录

  • 1- 思路
    • 题目识别
    • 动态规划
  • 2- 实现
    • 32. 最长有效括号——题解思路
  • 3- ACM 实现


  • 原题链接:32. 最长有效括号

1- 思路

题目识别

  • 识别1 :给定一个字符串 s ,求解 s 中的最长有效括号

动态规划

动态规划五部曲

  • 递推公式难
  • 如果遇到了 s.charAt(i) == ')' 开始递推
  • 先求解 preIndex = i - dp[i-1] - 1
    • 保证 preIndex >= 0 && s.charAt(preIndex) == '('
    • dp[i] = 2 + dp[i-1];
    • if(preIndex -1 >= 0) { dp[i] += dp[preIndex-1];}

2- 实现

32. 最长有效括号——题解思路

在这里插入图片描述

class Solution {public int longestValidParentheses(String s) {int len = s.length();if(len==0){return 0;}int res = 0;// 定义 dp数组// 有效括号长度int[] dp = new int[len];// 递推// preIndex = i - dp[i-1] -1;// if(preIndex >= 0 && s.charAt(preIndex == '('))// dp[i] = 2+dp[i-1];// if(preIndex - 1 >= 0 ) dp[i]+=dp[preIndex-1];// 3.初始化// 4.遍历for(int i = 1 ; i < len ; i++){if(s.charAt(i) == ')'){int pre = i - dp[i-1]-1;if(pre>=0 && s.charAt(pre)=='('){dp[i] = 2 + dp[i-1];if(pre - 1 >=0 ){dp[i] += dp[pre-1];}}}res = Math.max(res,dp[i]);}return res;}
}

3- ACM 实现

import java.util.Scanner;public class longestKH {public static int longestS(String str){int len = str.length();// 定义dpint[] dp = new int[len];int res = 0;// 递推// 当前为右括号// 求解 pre = i - dp[i-1] -1;// 如果 pre>=0 && s.charAt(pre) == '('  {dp[i] = 2 + dp[i-1];}// 3. 初始化// 4.遍历for(int i = 1 ; i < len;i++){if(str.charAt(i) == ')'){int preIndex = i - dp[i-1] - 1;if(preIndex>=0 && str.charAt(preIndex) == '('){dp[i] = 2 + dp[i-1];if(preIndex-1>=0){dp[i] += dp[preIndex-1];}}res = Math.max(res,dp[i]);}}return res;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);String input = sc.nextLine();System.out.println("结果是"+longestS(input));}
}
http://www.lryc.cn/news/440622.html

相关文章:

  • 力扣198-打家劫舍
  • Python 入门教程(4)数据类型 | 4.1、数据类型
  • 如何进行DAP-seq的数据挖掘,筛选验证位点
  • 学习大数据DAY56 业务理解和第一次接入
  • java线程池编程示例
  • 02 基于STM32的按键控制继电器驱动电机
  • 网页本地存储
  • SpringBoot2:web开发常用功能实现及原理解析-@ControllerAdvice实现全局异常统一处理
  • DockerLinux安装DockerDocker基础
  • macOS平台TensorFlow环境安装
  • 全网最全 线程邮箱
  • Linux下rpm方式部署mysql(国产化生产环境无联网服务器部署实操)
  • 【Python机器学习】NLP信息提取——正则模式
  • opc服务器与opc服务器如何通讯
  • 指针 (六)
  • Linux下vscode配置C++和python编译调试环境
  • OrionX GPU算力池助力AI OCR场景应用
  • 移动端如何实现智能语音交互
  • HTTPS:构建安全通信的基石
  • OceanBase 企业版OMS 4.2.3的使用
  • STM32中的计时与延时
  • [论文笔记] CSFCN
  • mac电脑命令行获取电量
  • 2024桥梁科技两江论坛——第二届桥梁工程安全与韧性学术会议
  • 性能测试-jmeter的控制器(十六)
  • 直播开播极速流,如何有效接入?
  • stm32 W25Q数据存储
  • 深度学习的笔记
  • 音视频入门基础:AAC专题(8)——FFmpeg源码中计算AAC裸流AVStream的time_base的实现
  • React 组件的基本使用,useState 状态变量的使用