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

一维dp-序列类型-最长有效括号

最长有效括号

在这里插入图片描述

在这里插入图片描述

Solution

这题的难点在于状态转移方程,由于这里是一维序列,所以很容易想到用“以第i个字符结尾的…”来定义状态,关键就在于寻找后面的状态是怎样依赖于前面的状态。

#include<iostream>
#include<vector>
using namespace std;int longestValidParentheses(string s) {int n = s.length();vector<int> dp(n + 1, 0);int ans = 0;//dp(i)表示以第i个字符结尾的最大有效括号长度for (int i = 1; i < n; ++i) {//以左括号结尾的一定等于0if (s[i] == '(') continue;//以右括号结尾else {//寻找与该括号匹配的左括号int p = i - dp[i - 1] - 1;if (p >= 0 && s[p] == '(') {dp[i] = dp[i - 1] + 2;//找到匹配的左括号了,先长度加二,还需要继续分析//因为就算这里匹配上了,还要考虑再上一个位置if (p - 1 >= 0) dp[i] += dp[p - 1];}ans = max(ans, dp[i]);}}return ans;
}
int main() {string s;cin >> s;cout << longestValidParentheses(s);return 0;
}
http://www.xdnf.cn/news/17041.html

相关文章:

  • 如何在`<link type=“icon“ href=`的`href`中写SVG并使用path标签? 笔记250802
  • Design Compiler:Milkyway库的创建与使用
  • 中之人模式下的虚拟主持人:动捕设备与面捕技术的协同驱动
  • 人工智能与交通:智能出行的变革与未来
  • retro-go 1.45 编译及显示中文
  • C/C++常用字符串函数
  • 具身智能VLA困于“数据泥潭”,人类活动视频数据是否是“破局之钥”?
  • Noob靶机
  • 大模型 + 垂直场景:搜索 / 推荐 / 营销 / 客服领域开发有哪些新玩法?
  • 决策树算法:三大核心流程解析
  • 详解Python标准库之并发执行
  • 【王阳明代数讲义】基本名词解释
  • 机器学习消融实验:方法论演进、跨领域应用与前沿趋势
  • 海康皓视通 对接测试和比较
  • (吃饭)质数时间
  • AIDL当Parcelable序列化的数据类通信时报“Class not found when unmarshalling“找不到该类时的解决方案
  • JVM 01 运行区域
  • Python Pandas.from_dummies函数解析与实战教程
  • ubuntu双系统设置默认启动系统
  • Windows本地使用dify搭建知识库+ollama+deepseek
  • Java单元测试和设计模式
  • winscp 连openwrt 返回127错误码
  • InfluxDB 与 Node.js 框架:Express 集成方案(一)
  • 【网络原理】HTTP协议(一)
  • Chisel芯片开发入门系列 -- 17. CPU芯片开发和解释7(5级流水线指令原理)
  • 【Flutter3.8x】flutter从入门到实战基础教程(八):公共state的集中管理机制
  • WordPress AI写作插件开发实战:从GPT集成到企业级部署
  • 【Java】不允许直接操作数据表中的数据,开发前台界面来实现对多个数据表的增删改查
  • 【LeetCode刷题指南】--二叉树的前序遍历,二叉树的中序遍历
  • 力扣-105.从前序与中序遍历序列构造二叉树