LeetCode【32】最长的有效括号

news/2024/6/1 19:40:24 标签: leetcode, 算法, 职场和发展

题目:
在这里插入图片描述

思路:

括号字符串依次入栈,删除匹配的成对括号。最后栈中留下的都是无法匹配的断点。这些断点的差值减一就是断点间有效括号串的长度,取这些长度的最大值即可。
例如括号字符串 “)()((())(”,最后留在栈中的字符下标为 0 3 8。根据这三个断点可以得到,两个有效括号子串的长度分别为 3-0-1 = 2 和 8-3-1=4。所以最长的长度就是 4。

https://www.jianshu.com/p/e6b6e3b964d8

代码:

public int longestValidParentheses(String s) {
    if(s.length() <= 1) return 0;
    List<Integer> stack = new ArrayList<>();
    for(int i = 0; i < s.length(); ++i){
        if(!stack.isEmpty() 
                && s.charAt(i) == ')' 
                && s.charAt(stack.get(stack.size()-1)) == '(') stack.remove(stack.size()-1);
        else stack.add(i);
    }
    stack.add(s.length());
    int longest = stack.get(0);
    int diff;
    for(int i = 1; i < stack.size(); ++i){
        if((diff = stack.get(i)-stack.get(i-1)-1) > longest) longest = diff;
    }
    return longest;
}

http://www.niftyadmin.cn/n/5194943.html

相关文章

OpenWrt『嵌入式系统』安装pip

系统自带python&#xff13;.&#xff19;。 &#xff11;.下载getpip curl -O https://bootstrap.pypa.io/get-pip.py&#xff12;.运行get-pip.py&#xff08;根据情况&#xff0c;需要网络&#xff09; python get-pip.py

Web实战:基于Django与Bootstrap的在线计算器

文章目录 写在前面实验目标实验内容1. 创建项目2. 导入框架3. 配置项目前端代码后端代码 4. 运行项目 注意事项写在后面 写在前面 本期内容&#xff1a;基于Django与Bootstrap的在线计算器 实验环境&#xff1a; vscodepython(3.11.4)django(4.2.7)bootstrap(3.4.1)jquery(3…

ComText让机器人有了情节记忆

为了让人类与机器人更好地交流&#xff0c;MIT 计算机科学与人工智能实验室的研究员开发了一个名为 ComText 的程序。这款程序给机器人增加了情节记忆&#xff0c;让它们能够接受更加复杂的命令。目前&#xff0c;他们已经在机器人 Baxter 上测试了程序。 机器人没有情景化的记…

个人博客添加访问人数以及访问时间-githubpage

layout: post # 使用的布局&#xff08;不需要改&#xff09; title: 个人博客添加访问人数以及访问时间 # 标题 subtitle: 个人博客优化 #副标题 date: 2023-11-18 # 时间 author: BY ThreeStones1029 # 作者 header-img: img/about_bg.jpg #这篇文章标题背景图片 catalog: tr…

【算法基础】筛质数

文章目录 问题描述解决方法朴素筛法线性筛法 问题描述 给定一个正整数 n n n&#xff0c;请你求出 1 ∼ n 1∼n 1∼n 中质数的个数。 输入格式 共一行&#xff0c;包含整数 n。 输出格式 共一行&#xff0c;包含一个整数&#xff0c;表示 1∼n 中质数的个数。 数据范围 …

Apache ECharts简介

二十九、Apache ECharts 29.1 介绍 Apache ECharts 是一款基于 JavaScript 的数据可视化图表库&#xff0c;提供直观、生动、可交互、可个性化定制的数据可视化图表。 官网地址&#xff1a;https://echarts.apache.org/zh/index.html 常见效果展示&#xff1a; 1). 柱形图 …

JDK1.5 新特性【泛型】

前言 泛型在 JavaSE 阶段是学习过的&#xff0c;但是毕竟处理定义一些简单的集合就很少用到它了&#xff0c;至于最近 Flink 中遇到的 泛型方法&#xff0c;更是感觉闻所未闻&#xff0c;以及源码中加在接口、方法、类前的各种 <T,V> 让我实在自觉羞愧&#xff0c;于是今…

Java Swing个税计算器

关注UP主&#xff0c;获取更多源码资源 内容要求 1&#xff09; 本次程序设计是专门针对 Java 课程的,要求使用 Java 语言进行具有一定代码量的程序开发。程序的设计要结合一定的算法&#xff0c;在进行代码编写前要能够设计好自己的算法。 2&#xff09;本次程序设计涉及到…