找出最长的有效括号内子括号的长度
CSDN编程挑战里的题目
给定只包含括号字符'('和 ')''的字符串,请找出最长的有效括号内子括号的长度。
举几个例子如下: 例如对于"( ()",最长的有效的括号中的子字符串是"()" ,有效
双括号数1个,故它的长度为 2。 再比如对于字符串") () () )",其中最长的有效
的括号中的子字符串是"() ()",有效双括号数2个,故它的长度为4。 再比如对于
"( () () )",它的长度为6。 换言之,便是有效双括号"()"数的两倍。 给
定函数原型int longestValidParentheses(string s),请完成此函数,实现上述功能。
我提交的程序CSDN反馈是有问题,但又没给说具体的出错测试用例.所以我也没有再进一步调试,感觉我的代码没问题.
1 #include <stdio.h>
2 #include <iostream>
3 #include <string>
4
5 #include <cmath>
6 #include <cfloat>
7 #include <cstring>
8 #include <cstdio>
9
10 int longestValidParentheses(const char* s)
11 {
12 int len = strlen(s);
13 int leftBracket[256];
14 memset(leftBracket, 0, sizeof(leftBracket));
15 int rst = 0;
16 int lastStart = 65535;
17 int leftBracketNum = 0;
18 for (int i = 0; i < len; i++)
19 {
20 if (s[i] == '(')
21 {
22 leftBracket[leftBracketNum] = i;
23 leftBracketNum++;
24 }
25 else if (s[i] == ')')
26 {
27 if (leftBracketNum)
28 {
29 leftBracketNum--;
30 if (leftBracket[leftBracketNum] < lastStart)
31 {
32 rst = i - leftBracket[leftBracketNum] + 1;
33 lastStart = leftBracket[leftBracketNum];
34 }
35 else
36 {
37 rst = i - lastStart + 1;
38 }
39 }
40 else
41 {
42 lastStart = 65535;
43 }
44 }
45 }
46
47 return rst;
48 }
转载于:https://my.oschina.net/abcijkxyz/blog/723557
找出最长的有效括号内子括号的长度相关推荐
- java小编程----给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
package com.henu;import java.util.Arrays;/*** @author limengdong* @date 2019年7月19日* @classroom 208bi ...
- 【Python】最长括号匹配问题:给定字符串,仅包含左括号‘(’和右括号‘)’,它可能不是括号匹配的,设计算法,找出最长匹配的括号子串
最长括号匹配 示例: 给定字符串,仅包含左括号'('和右括号')',它可能不是括号匹配的,设计算法,找出最长匹配的括号子串. 算法分析 只有在右括号和左括号发生匹配时,才有可能更新最终解. 计算s[0 ...
- leetcode 5485. 找出最长的超赞子字符串
5485. 找出最长的超赞子字符串 给你一个字符串 s .请返回 s 中最长的 超赞子字符串 的长度. 「超赞子字符串」需满足满足下述两个条件: 该字符串是 s 的一个非空子字符串 进行任意次数的字符 ...
- 本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。输入格式:输入在一行中给出一个长整型范围内的非负整数。输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字.输入格式:输入在一行中给出一个长整型范围内的非负整数.输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格 1 ...
- LeetCode 5485. 找出最长的超赞子字符串 (状态压缩、二进制、位运算、前缀和)
5485. 找出最长的超赞子字符串 题意: 给你一个字符串 s .请返回 s 中最长的 超赞子字符串 的长度. 「超赞子字符串」需满足满足下述两个条件: 该字符串是 s 的一个非空子字符串 进行任意次 ...
- 2021-12-19:找到所有数组中消失的数字。 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums
2021-12-19:找到所有数组中消失的数字. 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内.请你找出所有在 [1, n] 范围内但没有出现在 nums ...
- 1542. 找出最长的超赞子字符串 哈希+状态压缩
1542. 找出最长的超赞子字符串 给你一个字符串 s .请返回 s 中最长的 超赞子字符串 的长度. 「超赞子字符串」需满足满足下述两个条件: 该字符串是 s 的一个非空子字符串 进行任意次数的字符 ...
- 力扣311场周赛:最长的字母序连续子字符串的长度
本文以python为编程语言,题目来源于力扣311届周赛 题目: 字母序连续字符串是由字母表中连续字母组成的字符串.换句话说,字符串 "abcdefghijklmnopqrstuvwxyz& ...
- leetcode 5 :Longest Palindromic Substring 找出最长回文子串
题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...
- 找出最长单词(C语言)(指针实现)
输入一行文字,找出其中的最长单词并输出. 要求: a)用指针实现. b)字符串若有多个最长单词,输出第一个. c)字符串长度不超过100个字符. d)规定连续的字母(大小写都行)构成的字符串为单词,字 ...
最新文章
- [iOS]如何重新架构 JPVideoPlayer ?
- 初中教师资格证计算机试讲教案模板,初中数学教师资格证面试教案模板: 《投影》...
- System Center 2012 R2 CM系列之Configuration Manager介绍
- 深度学习引擎的终极形态是什么?
- 协同过滤算法 R/mapreduce/spark mllib多语言实现
- 小米视频加载进度条效果实现
- java proguard 使用_一步步教你使用Proguard混淆Java源代码
- c语言 %-20s,一次 Rust 和C语言的混搭
- 创建基于webpack打包的vue项目
- 并发服务器模型——多线程服务器
- 【java】IDEA安装VisualVM插件-使用介绍 检测死锁 内存 cpu 慢方法
- mysql并发量_高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!
- 光大银行引入USB Server实现虚拟机调用Ukey
- 如何破解zip压缩文件的密码问题?
- app打开QQ与陌生人聊天
- GetComponentsInChildren 不能获取enabled = false的子物体
- 别人笑我太疯癫,我笑他人看不穿。
- 【深度学习】120G+训练好的word2vec模型(中文词向量)
- matlab求异面直线的公垂线,求异面直线的公垂线
- webpack打包压缩混淆_前端打包利器:webpack工具
热门文章
- 系统学习dede标签
- 单片机中code、data、idata、xdata等关键字意思
- IDear 创建web项目
- 青岛大学2020计算机考研录取名单,青岛大学复试录取名单 青岛大学2020年复试名单...
- 点, 直线, 平面的位置关系剩余部分快速学习笔记
- 天龙八部怀旧服服务器维护,新天龙八部怀旧服游戏2月4日全服更新维护公告
- 荣耀4a鸿蒙,华为荣耀4A上手评测:599元也可以很拉轰
- php7.0 phalcon_phalcon php7
- html适配手机 响应式,移动端适配(响应式)
- Java代码审计漏洞挖掘(入门)