Valid Parentheses
Une chaîne de crochets est équilibrée lorsque chaque crochet ouvrant est fermé par un crochet du même type, et que les paires s’emboîtent les unes dans les autres au lieu de se chevaucher. Il en existe trois types : les parenthèses (), les crochets [] et les accolades {}.
Par exemple, {[()()]} est équilibrée : chaque paire se ferme à l’intérieur de la paire qui l’englobe. En revanche, {(}) ne l’est pas : l’accolade se ferme alors que la parenthèse ouverte après elle est toujours en attente. Une chaîne comme (( n’est pas équilibrée non plus, car aucun caractère ne ferme les deux symboles ouvrants.
Écrivez une fonction nommée isValid qui reçoit une chaîne s composée uniquement des caractères (, ), [, ], { et }, et qui renvoie true lorsque ses parenthèses sont équilibrées et false sinon.
Équilibrées signifie que chaque parenthèse fermante correspond à la parenthèse ouvrante la plus récente encore ouverte, que les deux sont du même type et qu’aucune parenthèse ouvrante ne reste ouverte à la fin.
Contraintes : 1 ≤ s.length ≤ 10^4.
Fonction
- arg1string
- Renvoieboolean
Exemples
- Entrée
- arg1 = "[]{}()"
- Sortie
- true
- Entrée
- arg1 = "{[()()]}"
- Sortie
- true
- Entrée
- arg1 = "{(})"
- Sortie
- false
+13 tests cachés à la soumission
Indices
Ouvrez-les un par un. Chacun en dévoile un peu plus.
Lisez la chaîne de gauche à droite. Lorsqu’une parenthèse fermante apparaît, quelle parenthèse ouvrante peut-elle fermer ?
Il ne peut fermer que la parenthèse ouvrante qui a été ouverte le plus récemment et qui est toujours ouverte. Dernière ouverte, première fermée : c’est exactement l’ordre que conserve une pile.
Empilez chaque crochet ouvrant. À la rencontre d’un crochet fermant, la pile ne doit pas être vide et son sommet doit être du même type ; dépilez-le et continuez. À la fin de la chaîne, elle est équilibrée uniquement si la pile est vide.
Une explication complète de ce problème arrive bientôt.
Problèmes similaires
Des problèmes qui reposent sur les mêmes idées. En résoudre deux ou trois, c’est ce qui ancre un schéma.
Python
def isValid(s):
# Écrivez le code iciCas 1
Cas 2
Cas 3
Entrée
arg1 = "[]{}()"Attendu
true