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

LeetCode热题100—— 32. 最长有效括号 (hard)

https://leetcode.cn/problems/longest-valid-parentheses/description/?envType=study-plan-v2&envId=top-100-liked

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

示例 1:

输入:s = “(()”
输出:2
解释:最长有效括号子串是 “()”
示例 2:

输入:s = “)()())”
输出:4
解释:最长有效括号子串是 “()()”
示例 3:

输入:s = “”
输出:0

题解

字符串左括号个数右括号个数最长有效括号数
()112
()()224
(())224
(())()336
(((()412
())))142
  1. 字符串从左往右遍历 -> 左括号找右括号
    1. 如果左括号数大于右括号数,说明未完待续,还有可能出现对称的")", 继续遍历
    2. 如果左括号数小于右括号数,说明出现了一个害群之马破坏了队形,例如 “())” 多出来的")"导致无法继续有效,因此整个 "())"的区域被废弃,重新计算,左括号数 = 右括号数 = 0
    3. 如果左右括号数相同,说明是有效的,maxLength = max(maxLength , 2 * 左括号数)
  2. 字符串从右往左遍历 -> 右括号找左括号
    1. 如果右括号数大于左括号数,说明未完待续,还有可能出现对称的"(", 继续遍历
    2. 如果右括号数小于于左括号数,说明出现了一个害群之马破坏了队形,例如 “(()” 多出来的"("导致无法继续有效,因此整个 “(()” 的区域被废弃,重新计算,左括号数 = 右括号数 = 0
    3. 如果左右括号数相同,说明是有效的,maxLength = max(maxLength , 2 * 左括号数)
  3. 1和2取最大值即为 max
class Solution {public int longestValidParentheses(String s) {int left = 0, right = 0, maxlength = 0;for (int i = 0; i < s.length(); i++) {if (s.charAt(i) == '(') {left++;} else {right++;}if (left == right) {maxlength = Math.max(maxlength, 2 * right);} else if (right > left) {left = right = 0;}}// 注意要重置为0left = right = 0;for (int i = s.length() - 1; i >= 0; i--) {if (s.charAt(i) == '(') {left++;} else {right++;}if (left == right) {maxlength = Math.max(maxlength, 2 * left);} else if (left > right) {left = right = 0;}}return maxlength;}
}
http://www.dtcms.com/a/270601.html

相关文章:

  • 零基础上手 Amazon DynamoDB:NoSQL 数据库服务的核心概念与快速搭建指南
  • Android-重学kotlin(协程源码第二阶段)新学习总结
  • 安全管理协议(SMP):配对流程、密钥生成与防中间人攻击——蓝牙面试核心考点精解
  • Qt自定义控件(9)——径向渐变QRadialGradient、圆锥渐变QConicalGradient
  • 华为OD机试_2025 B卷_观看文艺汇演问题(Python,100分)(附详细解题思路)
  • Amazon S3 对象存储服务深度解析:存储原理、应用场景与实战指南
  • Hexo + Butterfly + Vercel 完整个人Blog部署指南
  • 量子化学计算GPU化:ORCA与Gaussian的CUDA加速对比(电子积分计算中的Warpshuffle指令实战应用)
  • 如何给网页增加滚动到顶部的功能
  • 【具身智能】本地实时语音识别kaldi在正点原子RK3588上部署
  • Python标准库:时间与随机数全解析
  • python 异步编程事件循环的共享问题
  • 达梦:指定数据文件还原的路径
  • 【Linux | 网络】socket编程 - 使用TCP实现服务端向客户端提供简单的服务
  • Ragas的Prompt Object
  • 大数据在UI前端的应用深化:用户行为模式的挖掘与预测性分析
  • 网络信息安全学习笔记1----------网络信息安全概述
  • 2025年新材料与清洁能源国际会议(IACNMCE 2025)
  • 计算机网络实验——访问H3C网络设备
  • 题解:P13017 [GESP202506 七级] 线图
  • 【机器学习】BeamSearch算法
  • BEV感知2
  • python学习打卡:DAY 24 元组和OS模块
  • 5202年安装TensorFlow纪实
  • 【LeetCode207.课程表】以及变式
  • 暑假算法日记第五天
  • [2025CVPR]Mr. DETR:检测Transformer的多路由指导训练解析
  • Mysql组合索引的update在多种情况下的间隙锁的范围(简单来说)
  • 141-CEEMDAN-VMD-Transformer-BiLSTM-ABKDE多变量区间预测模型!
  • [数学基础] 矩阵的秩及其应用