Menu
CoddyTech

Longest Valid Parentheses

On vous donne une chaîne s composée uniquement des caractères ( et ). Trouvez la plus longue sous-chaîne (une suite de caractères consécutifs) bien formée : chaque ( qu’elle contient est fermé par un ) qui apparaît plus loin dans cette sous-chaîne, et les paires sont correctement imbriquées, comme dans (()()). Renvoyez la longueur de cette sous-chaîne, ou 0 si même () n’apparaît pas.

Fonction

longestValidParentheses(s: string) → integer
sstring
une chaîne de caractères composée de ( et de )
Renvoieinteger
la longueur de la plus longue sous-chaîne bien formée, ou 0 s’il n’y en a aucune

Contraintes

  • 1 ≤ s.length ≤ 6 × 104
  • Chaque caractère de s est ( ou ).

Exemples

Entrée
s = "()(())"
Sortie
6
Explication
La chaîne entière est bien formée : () suivi de (()). Deux éléments bien formés côte à côte forment un seul élément bien formé, donc la réponse est constituée des 6 caractères.

lock icon+21 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu également indiquer où commence la plus longue sous-chaîne bien formée, en choisissant celle qui apparaît le plus à gauche lorsque plusieurs ont la même longueur ?

Réinitialiser le code
def longestValidParentheses(s):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

s = "()(())"

Attendu

6