题目英文

Given a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring.

Example 1:

Input: "(()"
Output: 2
Explanation: The longest valid parentheses substring is "()"

Example 2:

Input: ")()())"
Output: 4
Explanation: The longest valid parentheses substring is "()()"

题目中文

给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。

示例 1:

输入: "(()"
输出: 2
解释: 最长有效括号子串为 "()"

示例 2:

输入: ")()())"
输出: 4
解释: 最长有效括号子串为 "()()"

示例 3:

输入: ""
输出: 0
解释:

示例 4:

输入: "()(())"
输出: 6
解释: 最长有效括号子串为 "()(())"

算法实现

我们可以用栈在遍历给定字符串的过程中去判断到目前为止扫描的子字符串的有效性,同时计算最长有效字符串的长度。我们首先将 −1 放入栈顶。

  • 对于遇到的每个‘(’,我们将它的下标放入栈中。
  • 对于遇到的每个‘)’,我们弹出栈顶的元素,判断有效性,计算有效长度。
public class Solution {public int LongestValidParentheses(string s) {Stack<int> stack = new Stack<int>();stack.Push(-1);int result = 0;for (int i = 0; i < s.Length; i++){if (s[i] == '('){stack.Push(i);}else{stack.Pop();if (stack.Count == 0){stack.Push(i);}else{result = Math.Max(result, i - stack.First());}}}return result;}
}

实验结果

  • 状态:通过
  • 230 / 230 个通过测试用例
  • 执行用时:104 ms


相关图文

  • LeetCode实战:两数之和
  • LeetCode实战:三数之和
  • LeetCode实战:缺失的第一个正数
  • LeetCode实战:求众数
  • LeetCode实战:快乐数
  • LeetCode实战:删除链表的倒数第N个节点
  • LeetCode实战:合并两个有序链表
  • LeetCode实战:合并K个排序链表
  • LeetCode实战:两两交换链表中的节点
  • LeetCode实战:旋转链表
  • LeetCode实战:环形链表
  • LeetCode实战:相同的树
  • LeetCode实战:对称二叉树
  • LeetCode实战:二叉树的最大深度
  • LeetCode实战:搜索二维矩阵
  • LeetCode实战:将有序数组转换为二叉搜索树

LeetCode实战:最长有效括号相关推荐

  1. Leetcode 32 最长合法括号子序列

    算法特辑–动态规划 Leetcode 32 最长合法括号子序列 给定只有"(" 和 ")" 的字符串,求出最长的合法括号子序列. 例如:"())&qu ...

  2. LeetCode实战:有效的括号

    题目英文 Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the ...

  3. LeetCode 32. 最长有效括号(栈DP)

    文章目录 1. 题目信息 2. 栈 解题 3. 动态规划 解题 1. 题目信息 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1:输入: "(() ...

  4. leetcode:32. 最长有效括号

    32. 最长有效括号 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/longest-valid-parentheses/ 给你一个只包含 '(' 和 ...

  5. LeetCode 32最长有效括号(困难)

    维护不易,还请点个赞赞,如果想加入还请关注公众号bigsai回复进群加入打卡. 题目描述 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: &qu ...

  6. Leetcode 32.最长有效括号

    最长有效括号 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 " ...

  7. leetcode 32. 最长有效括号

    题目 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()& ...

  8. 刻意练习:LeetCode实战 -- Task15. 有效的括号

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  9. LeetCode 32 最长有效括号

    https://leetcode-cn.com/problems/longest-valid-parentheses/ 解决方案 class Solution {public int longestV ...

  10. LeetCode实战:最长公共前缀

    题目英文 Write a function to find the longest common prefix string amongst an array of strings. If there ...

最新文章

  1. Linux 进程及进程之间的通信机制——管道
  2. 2020年AI产业报告:100个岗位抢1个人,计算机视觉成最大缺口
  3. python绘制直方图-python matplotlib库直方图绘制详解
  4. Add Binary
  5. 【干货】在Redis中设置了过期时间的Key怎么办?
  6. 在java面向对象编程中_谈一谈你对封装_继承_多态概念的理解_Java新职篇:面向对象编程的3个原则是什么?...
  7. 面向对象4大特性的作用
  8. VB模拟指针模块mPoint.bas
  9. 简书留言频率限制机制
  10. Python3不需要uuid:导入/usr/local/lib/python3.x/site-packages/uuid.py提示if not 0 time_low 32L错误
  11. Win7系统做路由器
  12. php 的主要功能和特点,PHPMailer的主要功能特点和简单使用说明
  13. 手机兼容性测试(云测试)
  14. matlab计算轮廓曲率半径,用matlab求出最小曲率半径曲线方程实例
  15. 答疑解惑:软件定义存储常见问题
  16. CSS3:boder-radius
  17. FMI飞马网【线上直播】大数据安全实践
  18. 如何自己制作CHM电子书?
  19. 微信小程序注册流程图文详解
  20. configure: error: Your system does not support systemd

热门文章

  1. 1062 Talent and Virtue
  2. 学完javase和mysql_Java基础学完接下来应该学什么呢?
  3. Web应用配置虚拟主机(www.baidu.com)
  4. 大叔也说并行和串行`性能提升N倍(N由操作系统位数和cpu核数决定)
  5. Linux下安装JDK和Eclipse
  6. 软件开发经验总结(一)细节决定软件的成败
  7. 微信扫描二维码登入实现,网页端
  8. Boson_Netsim_6使用方法
  9. java实现在pdf文档上填充内容
  10. 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上