Heim  >  Artikel  >  Web-Frontend  >  Lustige JavaScript-Frage: Gepaarte Klammern

Lustige JavaScript-Frage: Gepaarte Klammern

黄舟
黄舟Original
2017-02-15 14:14:351464Durchsuche

Schauen wir uns zunächst einige Beispiele an, damit wir schnell verstehen, was „zu zweit“ bedeutet.


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

Eine linke Klammer und eine rechte Klammer, genau wie ein Paar.

Das Folgende bildet zwei Paare:


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

Nehmen wir ein komplizierteres, das N-Paar genannt wird:


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

Die folgenden Klammern können nicht „paarweise“, sondern nur „in Einzelform“ aufgerufen werden:


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

Dies Zum Beispiel gibt es zwei Paare, aber es gibt nur zwei rechte Klammern:


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

Okay, nachdem ich mir meine Einführung angehört habe, nehmen wir eine Schauen Sie sich die Aufgabe an:

Schreiben Sie eine validParentheses-Funktion, die eine aus Klammern zusammengesetzte Zeichenfolge akzeptiert. Wenn die Klammern „paarweise“ sind, gibt sie true zurück, andernfalls gibt sie false zurück.
Alle Eingabezeichenfolgen sind nicht leer und haben nur linke und rechte Klammern.

Idee:

Da es „paarweise“ ist, machen wir einen „eins nach dem anderen versetzten“ Ansatz.

Bereiten Sie zunächst einen leeren Stapel vor und schieben Sie ihn in den Stapel. Wenn Sie auf die rechte Klammer stoßen, werden die beiden versetzt.

Warten Sie, bis alle Zeichen verarbeitet wurden, und ermitteln Sie den Status des Stapels. Wenn der Stapel leer ist, bedeutet dies, dass alle Klammern versetzt sind, also „paarweise“.

Der Code lautet wie folgt:


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;
}




Das Obige ist die interessante JavaScript-Frage: der Inhalt von Klammerpaare. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn