Heim > Web-Frontend > js-Tutorial > Hauptteil

Lustige JavaScript-Frage: Gepaarte Klammern

黄舟
Freigeben: 2017-02-15 14:14:35
Original
1464 Leute haben es durchsucht

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


validParentheses( "()" ) // => returns true
Nach dem Login kopieren

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

Das Folgende bildet zwei Paare:


validParentheses( "(())" ) // => returns true
Nach dem Login kopieren

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


validParentheses( "(())((()())())" ) // => returns true
Nach dem Login kopieren

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


validParentheses( "(" ) // => returns false
Nach dem Login kopieren

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


validParentheses( ")(()))" ) // => returns false
Nach dem Login kopieren

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;
}
Nach dem Login kopieren




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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!