博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常见编程题 - 括号匹配方案
阅读量:3905 次
发布时间:2019-05-23

本文共 1382 字,大约阅读时间需要 4 分钟。

一、合法的括号匹配序列被定义为:

1. 空串”“是合法的括号序列
2. 如果”X”和”Y”是合法的序列,那么”XY”也是一个合法的括号序列
3. 如果”X”是一个合法的序列,那么”[X]”也是一个合法的括号序列
4. 每个合法的括号序列都可以由上面的规则生成
例如”“, “[]”, “[][][]”, “[[][]]”, “[[[[]]]]”都是合法的。
牛牛现在给出一个括号序列s,牛牛允许你执行的操作是:在s的开始和结尾处添加一定数量的左括号(‘[‘)或者右括号(‘]’)使其变为一个合法的括号匹配序列。牛牛希望你能求出添加最少的括号之后的合法的括号匹配序列是什么。

var s = readline();var count = 0;var t = '';for(var i in s) {    if(s[i] === '[') {        count++;    }else {        count--;    }    if(count < 0) {        t = '[' + t;        count = 0;    }}while(count >= 1) {    s += ']';    count--;}print(t + s);

二、合法的括号匹配序列被定义为:

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

//法一function test(str){
var line = str.split('');var count=1;while(line.length) { var i = line.indexOf(')'); count *= i; line.splice(i-1,2); }return count;}console.log(test('(((())))'));
//法二var s = readline();var count = 0,    result = 1;for(var i in s) {    if(s[i]==='(') {        count++;    }else if(s[i] === ')') {        result *= count;        count--;    }}print(result);

转载地址:http://zdaen.baihongyu.com/

你可能感兴趣的文章
eclipse运行时弹出提示java was started but returned exit code=13
查看>>
MATLAB鼠标选取ROC区域
查看>>
MFC按键控制
查看>>
google play app下载方法测试
查看>>
STM32利用FATFS读写数组
查看>>
Altium_Designer如何快速寻找元件和封装
查看>>
PCB各层介绍和AltiumDesigner画PCB时的规则设置
查看>>
char*,const char*和string 三者转换
查看>>
[PADS经验] 【图文并茂】教你如何使用Altium Designer画封装
查看>>
Altium Designer 教程
查看>>
字符串与数字转换方法
查看>>
利用Inoreader跟踪ScienceDirect最新文献教程
查看>>
VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control)
查看>>
STM32下SPI模式通过MAX7219驱动8位数码管显示模块
查看>>
目标检测的图像特征提取之(一)HOG特征
查看>>
web前端开发分享-css,js工具篇
查看>>
jQuery 学习笔记(未完待续)
查看>>
如何用万用表检测MOS管是好是坏?
查看>>
LabWindows/CVI入门之第一章:LabWindows/CVI开发环境
查看>>
LabWindows/CVI入门之第二章:GUI开发
查看>>