Heim > Artikel > Web-Frontend > Lustige JavaScript-Frage: Gepaarte Klammern
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)!