京东前端 括号序列

合法的括号匹配序列被定义为:
1. 空串""是合法的括号序列
2. 如果"X"和"Y"是合法的序列,那么"XY"也是一个合法的括号序列
3. 如果"X"是一个合法的序列,那么"(X)"也是一个合法的括号序列
4. 每个合法的括号序列都可以由上面的规则生成
例如"", "()", "()()()", "(()())", "(((())))"都是合法的。 东东现在有一个合法的括号序列s,一次移除操作分为两步:
1. 移除序列s中第一个左括号
2. 移除序列s中任意一个右括号.保证操作之后s还是一个合法的括号序列
东东现在想知道使用上述的移除操作有多少种方案可以把序列s变为空
如果两个方案中有一次移除操作移除的是不同的右括号就认为是不同的方案。
例如: s = "()()()()()",输出1, 因为每次都只能选择被移除的左括号所相邻的右括号.
s = "(((())))",输出24, 第一次有4种情况, 第二次有3种情况, ... ,依次类推, 4 * 3 * 2 * 1 = 24

输入描述:

输入包括一行,一个合法的括号序列s,序列长度length(2 ≤ length ≤ 20).

输出描述:

输出一个整数,表示方案数
示例1

输入

(((())))

输出

24





请问大佬有比较简单易懂的思路吗
蒙蔽了真的

全部评论
int main() { char arr[21]; scanf("%s", &arr); int n = strlen(arr); int result = 1; int t = 0; for (int i = 0; i < n; i++) { if (arr[i] == '(') { t++; result *= t; } else { t--; } } printf("%d\n", result); return 0; }
点赞 回复 分享
发布于 2017-09-08 21:04
while(line=readline()){     var lines=line.trim();     var arr=lines.split('');     var arr1=[];     var sum=1;     var deep=0;     for(var i=0;i<arr.length;i++){     if(arr[i]=='('){    arr1.push(arr[i]);     deep++; }   if(arr[i]==')'){ arr1.pop();   sum=sum*deep; deep--; } }             print(sum); }
点赞 回复 分享
发布于 2017-09-08 21:11
import java.util.Scanner;//昨天晚上40%今天想了想 改进了下 没机会试了 public class Main{//括号匹配。。 public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s=sc.nextLine(); char[] ch=s.toCharArray(); int sum=1; int k=0; int count=0; for(int i=0;i<ch.length-1;i++){ if(ch[i]=='('&&ch[i+1]!=')'){ k++; for(int j=i+1;j<ch.length;j++){ if(ch[j]==')') { count++; continue; } else continue; } sum = sum * (count-k+1); count=0; } } System.out.println(sum); } }
点赞 回复 分享
发布于 2017-09-09 10:45
天,我投的测试岗也有这题,当时越急越想不出来- -
点赞 回复 分享
发布于 2017-09-09 10:44
代码楼上已经贴出来,这里说一下自己的理解。 看左边括号的数量,也就是t的值,则后面序列的每一个右括号可以匹配t个已经遍历到的左括号,也就是t种方案。 依此类推~
点赞 回复 分享
发布于 2017-09-09 10:37
我的思路是,找右括号数-1=做括号数为临届,循环了n/2次。自己试了几个对了,但是没提交因为时间到了。但估计时间复杂度也超了
点赞 回复 分享
发布于 2017-09-08 22:05
逆向思维,从最右边一个左括号开始考虑
点赞 回复 分享
发布于 2017-09-08 21:06
都好厉害啊 这个不会 前面购物车那个怎么做
点赞 回复 分享
发布于 2017-09-08 21:06

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务