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

32. 最长有效括号

时间:2023-09-23 23:05:28浏览次数:32  
标签:int 32 len st 括号 ans mark 最长

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

 

示例 1:

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

示例 2:

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

示例 3:

输入:s = ""
输出:0

 

提示:

  • 0 <= s.length <= 3 * 104
class Solution {
public:
    int longestValidParentheses(string s) {
        stack<int> st;
        vector<bool> mark(s.length());
        for(int i = 0; i < mark.size(); i++) mark[i] = 0;
        int left = 0, len = 0, ans = 0;
        for(int i = 0; i < s.length(); i++) {
            if(s[i] == '(') st.push(i);
            else {
                // 多余的右括号是不需要的,标记
                if(st.empty()) mark[i] = 1;
                else st.pop();
            }
        }
        // 未匹配的左括号是不需要的,标记
        while(!st.empty()) {
            mark[st.top()] = 1;
            st.pop();
        }
        // 寻找标记与标记之间的最大长度
        for(int i = 0; i < s.length(); i++) {
            if(mark[i]) {
                len = 0;
                continue;
            }
            len++;
            ans = max(ans, len);
        }
        return ans;
    }
};

标签:int,32,len,st,括号,ans,mark,最长
From: https://blog.51cto.com/u_16040716/7581395

相关文章

  • 20211325 2023-2024-1 《信息安全系统设计与实现(上)》第三周学习笔记
     202113252023-2024-1《信息安全系统设计与实现(上)》第三周学习笔记一、任务要求自学教材第10章,提交学习笔记(10分)大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?,评分标准如下1.知识点......
  • Android开发笔记[4]-串口控制esp32及使用摄像头
    摘要无需root权限,Android使用串口与esp32通信控制小灯开关;开启Android摄像头预览.平台信息AndroidStudio:ElectricEel|2022.1.1Patch2Gradle:distributionUrl=https://services.gradle.org/distributions/gradle-7.5-bin.zipjvmTarget='1.8'minSdk21targetSdk......
  • windows系统编程(win32)
    一、编程环境操作系统:windows10-1809(17763.1557)-x64;windowskits:C:\ProgramFiles(x86)\WindowsKits\10\Include\10.0.19041.0\sharedvisualstudio2019:C:\ProgramFiles(x86)\MicrosoftVisualStudio\2019\Community\VC\Tools\MSVC\14.29.30133\include......
  • 前端学习笔记202309学习笔记第九十三天-面向对象32
     ......
  • STM32开发之实验总结
    一、跑马灯实验  可以利用跑马灯实验来配置程序在正常运行指示【还有也可以使用串口实验来】,我们所要配置的有;  延迟函数  GPIO初始化函数  在初始化的时候我们要确定是那个GPIO口如果你需要用他的复用功能,你也需要设置。记住stm32在默认情况下都是死亡的,所以你无论......
  • STM32之USART通信
    USART通信是什么通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统通信协议:是两个(或多个)设备之间进行通信,必须要遵循的一种协议。通讯协议分为物理层和协议层。物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输;协议层:规定通讯逻辑......
  • STM32之OLED显示
    OLED显示屏学习,不是追求速度的,是追求质量的学习资料:【正点原子】手把手教你学STM32HAL库开发全集OLED基础知识ATK_OLED模块是一块小尺寸(0.96寸)、高亮、自带升压电路的高性能OLED显示模块,分辨率为128*64,采用SSD1306驱动IC,该芯片内部集成DCDC升压,仅需3.3V供电。模块支持......
  • STM32之LCD显示
    LCD学习资料:【正点原子】手把手教你学STM32HAL库开发全集LCD基础知识LCD(LiquidCrystalDisplay),即液晶显示器,由:玻璃基板、背光、驱动IC等组成全彩LCD,是一种全彩显示屏(RGB565、RGB888),可以显示各种颜色LCD接口分类:接口分辨率特性MCU≤800*480自带SRAM,无需......
  • STM32之定时器
    定时器前言需要了解的基本知识:频率(frequency):是单位时间内完成周期性变化的次数,是描述周期运动频繁程度的量,常用符号f或ν表示,单位为秒分之一,符号为s-1。赫兹(HZ):是国际单位制中频率的单位,它是每秒钟的周期性变动重复次数的计量。1MHz=1000kHz=1000000Hz。周......
  • STM32之GPIO外设
    GPIO学习资料:江科大-STM32入门教程前言STM32上的144个引脚分为:GPIO(GeneralPurposeInputOutput)通用输入输出IO口,112个PA16个PB16个PC16个PD16个PE16个PF16个PG16个电源引脚,27个VDD11个:GNDVSS11个:3.3VVref+1个:开发板模拟部分(ADC/DAC)的......