Home >Web Front-end >JS Tutorial >JavaScript Fun Question: Paired Parentheses
Let’s take a look at some examples first, so that we can quickly understand what “in pairs” means.
validParentheses( "()" ) // => returns true
A left parenthesis and a right parenthesis, just like a pair.
The following one forms two pairs:
validParentheses( "(())" ) // => returns true
Let’s take a more complicated one, which is called N pair:
validParentheses( "(())((()())())" ) // => returns true
The following brackets cannot be called "in pairs", they can only be said "in single form":
validParentheses( "(" ) // => returns false
In this example, two pairs are formed , but there are two right brackets alone:
validParentheses( ")(()))" ) // => returns false
Okay, after listening to my introduction, let’s take a look at the task:
Write a validParentheses The function accepts a string composed of brackets and returns true if the brackets are "in pairs", otherwise it returns false.
All input strings are non-empty and have only left and right brackets.
Idea:
Since it is "in pairs", let's do a "one-to-one offset" approach.
First prepare an empty stack, push it into the stack when it encounters a left bracket, spit out a "left bracket" when it encounters a right bracket, and the two offset each other.
Wait until all characters have been processed and determine the status of the stack. If the stack is empty, it means that all the brackets are offset, that is, "in pairs".
The code is as follows:
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; }
The above is an interesting JavaScript question: the content of pairs of brackets, more For more related content, please pay attention to the PHP Chinese website (www.php.cn)!