九度题目1342:寻找最长合法括号序列II

题目1342:寻找最长合法括号序列II(25分)

时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:732
解决:294

题目描述:
假如给你一个由’(‘和’)’组成的一个随机的括号序列,当然,这个括号序列肯定不能保证是左右括号匹配的,所以给你的任务便是去掉其中的一些括号,使得剩下的括号序列能够左右括号匹配且长度最长,即最长的合法括号序列。

输入:
测试数据包括多个,每个测试数据只有一行,即一个随机的括号序列,该括号序列的长度保证不超过106。

输出:
对于每个测试案例,输出一个整数,表示最后剩下的最长合法括号序列长度。

样例输入:
(())()
(()

 

样例输出:
6
2

 

思路:以前做过的水题...用栈模拟即可,相同的出栈,不相同继续进栈....

AC代码:

#include<stdio.h>
#include<string.h>
char s[1000010];
char stack[1000010];
int main()
{
	int i,j,n,m,sum;
    while(gets(s))
	{
		n=strlen(s);m=0;
		sum=0;
		for(i=0;i<n;i++)
		{
           stack[m++]=s[i];
		   if(m-2>=0)
		   {
			   if(stack[m-2]=='('&&stack[m-1]==')')
			   {
				   sum+=2;
				   m-=2;
			   }
		   }
		}
		printf("%d\n",sum);
	}
	return 0;
}
时间: 2024-09-15 16:56:15

九度题目1342:寻找最长合法括号序列II的相关文章

九度题目1528:最长回文子串

题目1528:最长回文子串 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:781 解决:239 题目描述: 回文串就是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串. 回文子串,顾名思义,即字符串中满足回文性质的子串. 给出一个只由小写英文字符a,b,c...x,y,z组成的字符串,请输出其中最长的回文子串的长度. 输入: 输入包含多个测试用例,每组测试用例输入一行由小写英文字符a,b,c...x,y,z组成的字符串,字

九度题目1530:最长不重复子串

题目1530:最长不重复子串 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:873 解决:284 题目描述: 最长不重复子串就是从一个字符串中找到一个连续子串,该子串中任何两个字符都不能相同,且该子串的长度是最大的. 输入: 输入包含多个测试用例,每组测试用例输入一行由小写英文字符a,b,c...x,y,z组成的字符串,字符串的长度不大于10000. 输出: 对于每组测试用例,输出最大长度的不重复子串长度. 样例输入: absd abba abdffd 样例输出: 4 2 4 来源

九度题目1201:二叉排序树

题目1201:二叉排序树 时间限制:1 秒内存限制:32 兆特殊判题:否提交:3008解决:1262 题目描述:     输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历. 输入:     输入第一行包括一个整数n(1=n=100).     接下来的一行包括n个整数. 输出:     可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序.中序和后序遍历.     每种遍历结果输出一行.每行最后一个数据之后有一个空格. 样例输入: 5 1 6 5

九度题目1120:全排列

题目1120:全排列  时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2749 解决:669 题目描述: 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列. 输入: 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间. 输出: 输出这个字符串的所有排列方式,每行一个排列.要求字母序比较小的排列在前

九度题目1333:考研海报

题目1333:考研海报 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:645 解决:256 题目描述: sun是万千考研学子中的一员,他每天过着三点一线的生活. 学校里有一个公告栏,他每天都看到上面张贴着各种考研海报. sun提出了一个问题:公告栏上还剩多少空白区域是没被考研海报张贴过的? 于是sun果断上王道贴上了这道题目.   输入: 公告栏左上角是坐标原点(0,0),公告栏长宽相等. 数据有多组,每组输入公告栏长度n(0<n<=100). 海报张数m(0<m<=1

九度题目1112:拦截导弹

题目1112:拦截导弹 时间限制:1 秒内存限制:32 兆特殊判题:否提交:1842解决:873 题目描述: 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹.拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹.  输入: 每组输入有两行, 第一行,输入雷

九度题目1447:最短路

题目1447:最短路 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1650 解决:798 题目描述: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? 输入: 输入包括多组数据.每组数据第一行是两个整数N.M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场

九度题目1110:小白鼠排队

题目1110:小白鼠排队 时间限制:1 秒内存限制:32 兆特殊判题:否提交:1348解决:820 题目描述: N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子.现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色.帽子的颜色用"red","blue"等字符串来表示.不同的小白鼠可以戴相同颜色的帽子.白鼠的重量用整数表示. 输入: 多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目. 下面有N行

九度题目1188:约瑟夫环

题目1188:约瑟夫环 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1500 解决:665 题目描述:     N个人围成一圈顺序编号,从1号开始按1.2.3......顺序报数,报p者退出圈外,其余的 人再从1.2.3开始报数,报p的人再退出圈外,以此类推.     请按退出顺序输出每个退出人的原序号. 输入: 包括一个整数N(1<=N<=3000)及一个整数p. 输出: 测试数据可能有多组,对于每一组数据, 按退出顺序输出每个退出人的原序号. 样例输入: 7 3 样例输出: