【LeetCode - 32】最长有效括号
给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
示例 1:
输入:s = "(()"
输出:2
解释:最长有效括号子串是 "()"
示例 2:
输入:s = ")()())"
输出:4
解释:最长有效括号子串是 "()()"
示例 3:
输入:s = ""
输出:0
提示:
0 <= s.length <= 3 * 104
s[i] 为 '(' 或 ')'
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题报告:
一题多解问题。
解法一是DP,比较好想,思路也很清晰,就是写起来有点丑陋。dp[i]代表以i为结尾的最长序列长度。
解法二可以用栈,合并的思路和OAE思想的结合。
AC代码1:(dp的思路)
class Solution {
public:int dp[55555];int longestValidParentheses(string s) {int n = s.size();if(s[1] == ')' && s[0] == '(') dp[1] = 2;for(int i = 2; i<n; i++) {if(s[i] == ')') {if(s[i-1] == ')') {if(i-1-dp[i-1]>=0 && s[i-1-dp[i-1]] == '(')dp[i] = dp[i-1]+2 + ((i-1-dp[i-1]-1>=0)?dp[i-1-dp[i-1]-1]:0);else dp[i] = 0; } else dp[i] = dp[i-2] + 2;}}int ans = 0;for(int i = 0; i<n; i++) ans = max(ans, dp[i]);return ans;}
};
AC代码2:(栈)
参考wjh巨佬的博客
【LeetCode - 32】最长有效括号___似水流年__的博客-CSDN博客
【LeetCode - 32】最长有效括号相关推荐
- Leetcode 32 最长合法括号子序列
算法特辑–动态规划 Leetcode 32 最长合法括号子序列 给定只有"(" 和 ")" 的字符串,求出最长的合法括号子序列. 例如:"())&qu ...
- leetcode:32. 最长有效括号
32. 最长有效括号 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/longest-valid-parentheses/ 给你一个只包含 '(' 和 ...
- LeetCode 32. 最长有效括号(栈DP)
文章目录 1. 题目信息 2. 栈 解题 3. 动态规划 解题 1. 题目信息 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1:输入: "(() ...
- LeetCode 32最长有效括号(困难)
维护不易,还请点个赞赞,如果想加入还请关注公众号bigsai回复进群加入打卡. 题目描述 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: &qu ...
- Leetcode 32.最长有效括号
最长有效括号 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 " ...
- leetcode 32. 最长有效括号
题目 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()& ...
- LeetCode 32 最长有效括号
https://leetcode-cn.com/problems/longest-valid-parentheses/ 解决方案 class Solution {public int longestV ...
- 32. 最长有效括号
32. 最长有效括号 题目描述 给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度. 示例1: 输入:s = "(()" 输出:2 解释:最 ...
- 【LeetCode笔记】32. 最长有效括号(Java、动态规划、栈、字符串)
文章目录 题目描述 代码 & 解析 1. 栈做法 2. 动态规划 题目描述 (括号题真的好烦人) 讲道理,题目一看,大概率就是用dp做 代码 & 解析 1. 栈做法 这个做法我没实际写 ...
- [力扣]32. 最长有效括号(三解法)
解法一:栈 class Solution:def longestValidParentheses(self, s: str) -> int:q = []st = -1res = 0for i i ...
最新文章
- 林园投资体系+嘴巴经济+病从口入+老龄化
- Jquery Table 的基本操作
- 蔡先生论道大数据十九:王羲之与大数据
- C# ToString()方法
- 百度高德位置定位服务器,调用百度、高德地图App,百度地图网页版,App定位
- webGL简单例子(klayge)
- 为了保护眼睛,请调节颜色
- mybatis-嵌套(关联)查询/ N+1 / 延迟加载
- mysql索引学习笔记
- 测绘专业学生对测绘软件的一点认识
- 微信下载录音文件(音轨分离 ffmpeg视频合成)
- 【滑动窗口协议模拟】
- win10计算器rsh_Win10计算器快捷键
- 串口发送字符控制灯亮灭
- 超级计算机 计算化学,计算化学软件使用经验-超算中心.PDF
- 解决:未定义标识符 “sleep“ 或 “sleep“:找不到标识符
- 离散数学 —— 集合论(集合的传递性与自反性、幂集、交集、并集、相对补集、绝对补集、对称差或异或、序偶或序对、集合的规模或基数)
- Controller层使用@value注解获取不到 yml文件中的properties属性值
- 百度网盘漏洞,2019年不限速方法,一直享受高速加速下载!
- 技术总结-从输入 URL 到页面加载完成的过程中都发生了什么事情?
热门文章
- 基于FlashPaper的文档播放器
- 212. Word Search II:多个单词查找
- 大学python笔记_Python 上手笔记
- mysql操作窗口如何设置粘贴,Access6.5在表中复制和粘贴数据
- D - F e n d 簡 單 教 學 DOSBOX Easy Shell 【玩DOS游戏的必备软件】
- 文档上传到服务器上,将文件上传到服务器上
- csp真题 202109-2非零段划分C++代码(100分)
- mac删除android sd卡,如何从mac完全删除android及其所有文件?
- RT-Thread Nano版本和RT-Thread Master版本的关系
- Spring MVC使用指示符重定向