Home >Web Front-end >JS Tutorial >JavaScript Fun Question: Paired Parentheses

JavaScript Fun Question: Paired Parentheses

黄舟
黄舟Original
2017-02-15 14:14:351480browse

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)!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn