首页 > 其他分享 >32. 最长有效括号

32. 最长有效括号

时间:2022-11-06 22:01:19浏览次数:67  
标签:start int 32 最长 括号 num res stack

32. 最长有效括号

题解:

  1. 合法子串中num('(') > num(')') 左右括号的数量相等
  2. 合法序列的前缀 num('(') >= num(')') 左括号的序列要大于右括号的序列
  3. 如果出现 num('(') < num(')') 则说明这个右括号开始是不合法的,可以从该右括号为起点,重新遍历后面的子串
class Solution {
    public int longestValidParentheses(String s) {
        char[] ch = s.toCharArray();
        int n = s.length();
        if (n == 0) return 0;
        Deque<Integer> stack = new ArrayDeque<>();
        int res = 0;
        for (int i = 0, start = -1; i < n; i++) {
            if (ch[i] == '(') {
                stack.push(i);
            } else {
                if (stack.size() > 0) {
                    stack.pop();
                    if (stack.size() > 0) {
                        res = Math.max(res, i - stack.peek());
                    } else {
                        res = Math.max(res, i - start);
                    }
                } else {
                    start = i;
                }
            }
        }
        return res;
    }
}

标签:start,int,32,最长,括号,num,res,stack
From: https://www.cnblogs.com/eiffelzero/p/16864289.html

相关文章

  • stm32cubeIDE STLINK连接SWD接口调试,启动GDB server失败的处理
    stm32cubeIDESTLINK连接SWD接口调试,启动GDBserver失败的处理报警提示Failedtobindtoport61234,errorcode-1:NoerrorFailurestartingGDBserver:TCPpor......
  • stm32cubeIDE STLINK连接SWD接口调试,启动GDB server失败的处理
    stm32cubeIDESTLINK连接SWD接口调试,启动GDBserver失败的处理报警提示Failedtobindtoport61234,errorcode-1:NoerrorFailurestartingGDBserver:TCPpor......
  • STM32学习 lesson 1
    基于野火STM32HAL库开发实战指南教学视频手把手教学STM32全系列零基础入门CubeMX+HAL库 我自己去STM32官方下载了,STM32CubeMX软件,然后按照教程安装一个Keil软件。......
  • 2022-2023-1 20221325《计算机基础与程序设计》第十周学习总结
    作业信息这个作业属于那个班级:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10作业目标:学习......
  • 软件工程 张雯雯223201062202
    请阅读北航陈彦吉同学的这篇博客中的各参考资料,并回答如下问题:(1)回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢软件工程这个专业吗?你现在后悔选择了这个专......
  • [dp 记录]szjudge#26 括号序列
    dp部分平凡,但是后面找最值是值得深思的。题意:给出两个由左右括号形成的字符串,求在长度最小的基础上字典序最小的合法括号序列,使给出字符串均为其子串。\(|s|,|t|\leq30......
  • Codeforces Round #832 (Div. 2) D (预处理+二分)
    D.YetAnotherProblem观察题干发现一定要是odd考虑发掘性质发现之后还会将[l,r]长度为奇数的区间全部赋值成这个区间的异或和我们设长度为lenlen-1个偶数个异或为......
  • P3205 [HNOI2010]合唱队
    思路我们用\(f_{i,j,0}\)表示当前\([i,j]\)的人都已经入队了,并且\(i\)是从左边进的(\(0\)),或\(j\)是从右边进的(\(1\))。具体细节见代码。代码#include<iostream>#includ......
  • C/C++表达式求值(带括号)
    C/C++表达式求值(带括号)实验内容及要求(功能)1.友好的用户界面,给出简单用户帮助2.通过键盘输入表达式(负数,小数),表达式可包含加(+)、减(-)、乘(*)、除(/)、求模(%)、开......
  • 232. Implement Queue using Stacks
    push:直接插入辅助栈pop/peak:1.如果数据栈有数据,直接出栈;2.1.否则,如果辅助栈有数据,不停出栈给到数据栈2.2.出栈数据栈中的元素classMyQueue:def__init__(sel......