leetcode 最长有效括号_字符指针赋值为什么不能加大括号

leetcode 最长有效括号_字符指针赋值为什么不能加大括号给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = “(()”输出:2解释:最长有效括号子串是 “()”示例 2:输入:s = “)()())”输出:4解释:最长有效括号子串是 “()()”示例 3:输入:s = “”输出:0题解括号匹配:(看作+1,)看作-1,所有满足条件的括号应该是前缀和>=0,并且总和==0class Solution {public: const int INF =

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

示例 1:

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

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

输入:s = ""
输出:0

题解
括号匹配:(看作+1,)看作-1,所有满足条件的括号应该是前缀和>=0,并且总和==0

class Solution { 
   
public:
    const int INF = 0x3f3f3f3f;
    int work(string x){ 
   
        int res = 0;
        for(int i = 0,j = 0,cnt = 0;j < x.size();j ++){ 
   
            if(x[j] == '(')cnt ++;
            else cnt --;
            if(cnt == 0)res = max(res,j - i + 1);
            if(cnt < 0)i = j + 1,cnt = 0;
        }
        return res;
    }
    int longestValidParentheses(string s) { 
   
        int res = 0;
        res = work(s);
        reverse(s.begin(),s.end());
        for(auto &c : s){ 
   
            if(c == '(')c = ')';
            else c = '(';
        }
            
        res = max(res,work(s));
        return res;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169172.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu上Github下载慢的问题解决方法记录

    1.参考了这篇博客https://www.jianshu.com/p/0493dcc15d6f2.追加域名的IP地址我们可以利用https://www.ipaddress.com/来获得以下两个GitHub域名的IP地址:(1)github.com(2)github.global.ssl.fastly.net打开网页:得到的github.com的ip为:140…

    2022年4月7日
    33
  • 安捷伦示波器使用说明书_安捷伦labview采集

    安捷伦示波器使用说明书_安捷伦labview采集Step1:配置VISA协议。VISA协议是AgilentIOLibraries的一部分,主要包含一个虚拟仪器软件架构VISA(一个比较通用的工业仪器软件架构)和标准控制库SICL.我理解前者相当一个底层架构,后者相当于一个指令集.先配置好VISA,然后通过SICL指令集发命令。直接上例子,简单明了。agilent示波器可以直接用VISA,所以只要在C++项目里进行配置。首先在C++里配…

    2022年10月12日
    0
  • 更改conda源_conda install nb_conda

    更改conda源_conda install nb_conda更改conda源安装tensorflow过慢时,可以更改conda源安装tensorflow过慢时,可以更改conda源把一下代码直接复制到后端,按enter即可condaconfig–addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/condaconfig–addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkg

    2022年10月1日
    0
  • SQL 函数 TIMESTAMPDIFF

    SQL 函数 TIMESTAMPDIFF①求时间差TIMESTAMPDIFF(单位,开始时间,结束时间)==开始时间-结束时间,eg。TIMESTAMPDIFF(MINUTE,begin_time,IFNULL(over_time,NOW()))注释:如果over_time不为空则用现在时间减去begin_time,得到的值的单位为分钟转载于:https://www.cnblogs…

    2022年5月7日
    64
  • Otter介绍及(Manager)安装「建议收藏」

    Otter介绍及(Manager)安装「建议收藏」Otter 简单介绍名称:otter['ɒtə(r)]译意:水獭,数据搬运工语言:纯java开发定位:基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql

    2022年8月3日
    3
  • OS用户态和内核态[通俗易懂]

    OS用户态和内核态[通俗易懂]1、linux进程有4GB地址空间,如图所示:3G-4G大部分是共享的,是内核态的地址空间。这里存放整个内核的代码和所有的内核模块以及内核所维护的数据。2、特权级的概念:对于任何操作系统来说,创建一个进程是核心功能。创建进程要做很多工作,会消耗很多物理资源。比如分配物理内存,父子进程拷贝信息,拷贝设置页目录页表等等,这些工作得由特定的进程去做,所以就有了特权级别的概念。最关键的工作必须交给特权级最高的进程去执行,这样可以做到集中管理,减少有限资源的访问和使用冲突。interx86架构的cp

    2022年9月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号