最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript趣题:成双成对的括弧

来源:动视网 责编:小采 时间:2020-11-27 20:25:13
文档

JavaScript趣题:成双成对的括弧

JavaScript趣题:成双成对的括弧:先来看看一些例子,咋们就能很快明白,啥叫成双成对。validParentheses( "()" ) // => returns true一个左括弧,一个右括弧,正好凑成一对。下面这个就成两对了:validParentheses( "(())" ) //
推荐度:
导读JavaScript趣题:成双成对的括弧:先来看看一些例子,咋们就能很快明白,啥叫成双成对。validParentheses( "()" ) // => returns true一个左括弧,一个右括弧,正好凑成一对。下面这个就成两对了:validParentheses( "(())" ) //


先来看看一些例子,咋们就能很快明白,啥叫“成双成对”。

validParentheses( "()" ) // => returns true

一个左括弧,一个右括弧,正好凑成一对。

下面这个就成两对了:

validParentheses( "(())" ) // => returns true

再来个复杂点的,这叫N对:

validParentheses( "(())((()())())" ) // => returns true

下面的括号,不能叫“成双成对”,只能说“形单影只”:

validParentheses( "(" ) // => returns false

这个例子,结了两对,但还有两个右括弧单着:

validParentheses( ")(()))" ) // => returns false

好了,听了我的介绍,来看看任务:

编写一个validParentheses函数,接受一个由括弧组成的字符串,如果括弧是“成双成对”的,返回true,否则返回false。
所有的输入字符串都是非空的,而且只有左,右两种括弧。

思路:

既然是“成双成对”,咋们就来个“一一抵消”的做法。

先准备个空栈,碰到左括弧就入栈,碰到右括弧就吐出一个“左括弧”,两者抵消。

等所有字符都操作完,判断栈的情况,若栈空,则说明全部括号都抵消了,也就是“成双成对的”。

代码如下:

function validParentheses(parens){
 var stack = [];
 for(var i=0;i<parens.length;i++){
 var current = parens.charAt(i);
 switch(current){
 case "(":
 stack.push(current);
 break;
 case ")":
 var ele = stack.pop();
 if(ele === void 0){
 return false;
 }
 break;
 }
 }
 return stack.length == 0;
}

文档

JavaScript趣题:成双成对的括弧

JavaScript趣题:成双成对的括弧:先来看看一些例子,咋们就能很快明白,啥叫成双成对。validParentheses( "()" ) // => returns true一个左括弧,一个右括弧,正好凑成一对。下面这个就成两对了:validParentheses( "(())" ) //
推荐度:
标签: js 括弧 js的
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top