作者 : Xia Xinyu
日期 : 2022-1-3

原题链接

一个合法的括号序列满足以下条件:

序列()被认为是合法的。
如果序列X与Y是合法的,则XY也被认为是合法的。
如果序列X是合法的,则(X)也是合法的。
例如,(),()(),(())这些都是合法的。

现在,给定一个由 ( 和 ) 组成的字符串。

请你求出其中的最长合法括号子序列的长度。

注意,子序列不一定连续。

输入格式
共一行,一个由 ( 和 ) 组成的字符串。

输出格式
一个整数,表示最长合法括号子序列的长度。

数据范围
前五个测试点满足, 1≤输入字符串的长度≤10。
所有测试点满足,1≤输入字符串的长度≤106。

输入样例1:

(()))(

输出样例1:

4

输入样例2:

()()(()(((

输出样例2:

6

思路:刚开始想复杂了,其实是很简单的一道题,使用双指针算法迎刃而解

import java.util.*;
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);String s = in.next();int ans = 0;for(int i = 0;i < s.length(); i ++){int j = i;int cnt = 0; //记录左括号数量while(j < s.length()){if(s.charAt(j) == '(')cnt ++;if(cnt != 0 && s.charAt(j) == ')'){ //只要cnt不等于0,那么一定存在一个左括号与当前右括号匹配cnt --;ans += 2;}if(cnt < 0) break;j ++;}i = j;}System.out.println(ans);}
}

时间复杂度:O(n) n为字符串长度
空间复杂度:O(n)

4207. 最长合法括号子序列相关推荐

  1. 最长合法括号子序列(括号序列+贪心)

    1.题目引入: 一个合法的括号序列满足以下条件: 序列()被认为是合法的. 如果序列X与Y是合法的,则XY也被认为是合法的. 如果序列X是合法的,则(X)也是合法的. 例如,(),()(),(())这 ...

  2. Leetcode 32 最长合法括号子序列

    算法特辑–动态规划 Leetcode 32 最长合法括号子序列 给定只有"(" 和 ")" 的字符串,求出最长的合法括号子序列. 例如:"())&qu ...

  3. [Jobdu] 题目1337:寻找最长合法括号序列

    题目描述: 给你一个长度为N的,由'('和')'组成的括号序列,你能找出这个序列中最长的合法括号子序列么?合法括号序列的含义便是,在这个序列中,所有的左括号都有唯一的右括号匹配:所有的右括号都有唯一的 ...

  4. 最长匹配括号子序列问题

    题目 给定一个字符串只包含'('和')',输出其中最长的括号正确匹配的子序列的长度. 举例 输入 输出 ()) 2 )()()) 4 (() 2 (()()()()( 8 以下将介绍三种复杂度为O(n ...

  5. leetcode python 032 识别最长合法括号

    # 给定一个只包含字符'('和')'的字符串, # 找到最长的有效(格式良好)括号子字符串的长度. # 对于"(()",最长的有效括号子串是"()",其长度为2 ...

  6. 洛谷2766:[网络流24题]最长不下降子序列问题——题解

    https://www.luogu.org/problemnew/show/P2766 给定正整数序列x1,...,xn . (1)计算其最长不下降子序列的长度s. (2)计算从给定的序列中最多可取出 ...

  7. left join缺失右括号_LeetCode刷题实战31:最长有效括号

    来源: https://www.cnblogs.com/techflow/p/12393742.html 算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为 ...

  8. 无法使用带括号的初始值设定项初始化数组_leetcode32. 最长有效括号

    leetcode32. 最长有效括号 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有 ...

  9. 32. 最长有效括号

    32. 最长有效括号 题目描述 给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度. 示例1: 输入:s = "(()" 输出:2 解释:最 ...

  10. 递归/回溯:Generate Parentheses生成合法括号

    已知n组括号,开发一个程序,生成这n组括号所有的合法的组合可能. 例如:n = 3 结果为: ["((()))", "(()())", "(())() ...

最新文章

  1. 用Python分析《工作细胞》的一万多条评论后,非漫迷也要入番了
  2. 002_图表容器及大小
  3. 大牛讲堂 | 邬书哲:物体检测算法的革新与传承
  4. HDU 3966 树链剖分后线段树维护
  5. jdbc连接对象的获取 20210409233805735
  6. 用PaddlePaddle(飞桨)实现minist数据集的GAN生成
  7. C开源hash代码uthash的用法总结(1)
  8. html页面使用var变量,使用var定义变量和不使用var的本质区别
  9. Redis的数据类型(对象)
  10. Jsoup爬虫以及防反爬
  11. 软考中级-软件设计师-查缺补漏
  12. Android视频播放器在播放前出现灰色图像
  13. JS中根据入职时间计算工龄
  14. 常见互联网域名及含义
  15. mysql和mongo+查询效率_Mongodb VS Mysql 查询性能
  16. 信息安全意识培训非常重要
  17. 打印101~150之间的质数
  18. 入行大数据,需要学习哪些基础知识?
  19. Winform(C#) 国内开源美化控件主题库1 SunnyUI
  20. Android4.0新特性 中文翻译

热门文章

  1. hadoop 集群调度 Azkaban2搭建
  2. iphone 内部函数使用 (函数可能无法响应的部分解决方案)
  3. 检查手机是否安装外置SD卡
  4. 敏捷开发用户场景分析
  5. [CareerCup] 12.6 Test an ATM 测试一个自动取款机
  6. Java API For WebSocket(七)Java EE环境
  7. 世界目光聚焦美国:埃博拉病患者是否认真是可以治愈的?
  8. 2015年度夏季假期学习内容
  9. 20个最漂亮的基于WordPress的企业网站
  10. linux下载百度网盘文件