Maison > interface Web > js tutoriel > le corps du texte

Question amusante JavaScript : parenthèses appariées

黄舟
Libérer: 2017-02-15 14:14:35
original
1464 Les gens l'ont consulté

Jetons d’abord un coup d’œil à quelques exemples, afin de comprendre rapidement ce que signifie « par paires ».


validParentheses( "()" ) // => returns true
Copier après la connexion

Une parenthèse gauche et une parenthèse droite, tout comme une paire.

La suivante forme deux paires :


validParentheses( "(())" ) // => returns true
Copier après la connexion

Prenons-en une plus compliquée, qui s'appelle N paire :


validParentheses( "(())((()())())" ) // => returns true
Copier après la connexion

Les parenthèses suivantes ne peuvent pas être appelées "par paires", elles ne peuvent être appelées que "sous forme unique" :


validParentheses( "(" ) // => returns false
Copier après la connexion

Ceci Par exemple, il y a deux paires, mais il y a deux parenthèses droites seules : ​​


validParentheses( ")(()))" ) // => returns false
Copier après la connexion

D'accord, après avoir écouté mon introduction, prenons un regardez la tâche :

Écrivez une fonction validParentheses qui accepte une chaîne composée de parenthèses. Si les parenthèses sont "par paires", elle renvoie vrai, sinon elle renvoie faux.
Toutes les chaînes d'entrée ne sont pas vides et n'ont que des crochets gauche et droit.

Idée :

Puisque c'est "par paires", faisons une approche "offset un par un".

Préparez d'abord une pile vide, poussez-la dans la pile lorsqu'elle rencontre un support gauche, crachez un "support gauche" lorsqu'elle rencontre un support droit, et les deux se compensent.

Attendez que tous les caractères aient été traités et déterminez l'état de la pile. Si la pile est vide, cela signifie que toutes les parenthèses sont décalées, c'est-à-dire "par paires".

Le code est le suivant :


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;
}
Copier après la connexion




Ce qui précède est la question JavaScript intéressante : le contenu de paires de parenthèses , pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!