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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 精通Dubbo——Dubbo支持的协议的详解[通俗易懂]

    精通Dubbo——Dubbo支持的协议的详解[通俗易懂]Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的。下面我们就针对Dubbo的每种协议详解讲解,以便我们在实际应用中能够正确取舍。dubbo协议缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。连接个数:单连接连接方式:长连接传输协议

    2022年6月17日
    31
  • date和calendar_Calendar类

    date和calendar_Calendar类时间和日期处理 在程序中,某个固定的时间代表的都是一个时间点,也就是一个时间的瞬间,例如2009年3月8日15点50分0秒,在实际的应用中,经常需要对于两个时间进行比较或计算时间之间的差值,这些功能在Java语言中都可以很方便的实现。 在Java语言中,时间的表达单位是毫秒。也就是说,Java语言中的时间处理可以精确到毫秒。 在Java语言中,表达时间的方式有两种: a、绝

    2022年9月23日
    2
  • Java快速入门

    Java快速入门1Java简介太阳计算机系统(中国)有限公司1982年成立2009年被Oracle收购甲骨文股份有限公司1977年成立2013年成为全球第二大软件公司詹姆斯·高斯林(JamesGosling)Java编程语言的共同创始人之一一般公认他为“Java之父”1.1Java发展史20世纪90年代,出现了单片机。1991年,Sun公司成立了Green项目小组,专攻家电产品上的嵌入式应用,开发出了一种称为Oak的面向对象语言。1992年,Oak语言开发成功后,因为缺

    2022年6月5日
    30
  • [摘]UML学习一:标准建模语言UML的内容

    [摘]UML学习一:标准建模语言UML的内容

    2021年7月24日
    53
  • springcloud 架构图「建议收藏」

    springcloud 架构图「建议收藏」

    2022年6月8日
    33
  • 带有机器人框架的.NET自己主动化測试

    带有机器人框架的.NET自己主动化測试

    2021年9月1日
    63

发表回复

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

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