Menu
CoddyTech

Longest Valid Parentheses

Você recebe uma string s formada apenas pelos caracteres ( e ). Encontre a substring mais longa (uma sequência de caracteres consecutivos) que esteja bem formada: cada ( nela é fechada por um ) posterior também nela, e os pares são aninhados corretamente, como em (()()). Retorne o comprimento dessa substring ou 0 quando nem mesmo () aparecer.

Função

longestValidParentheses(s: string) → integer
sstring
uma string de caracteres ( e )
Retornainteger
o comprimento da maior substring bem formada, ou 0 se não houver nenhuma

Restrições

  • 1 ≤ s.length ≤ 6 × 104
  • Cada caractere de s é ( ou ).

Exemplos

Entrada
s = "()(())"
Saída
6
Explicação
A string inteira está bem formada: () seguida por (()). Duas partes bem formadas lado a lado formam uma única parte bem formada, então a resposta são todos os 6 caracteres.

lock icon+21 testes ocultos ao enviar

challenge icon

Para ir além

Você também pode informar onde começa a substring bem formada mais longa, escolhendo a mais à esquerda quando várias tiverem o mesmo comprimento?

Redefinir código
def longestValidParentheses(s):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

s = "()(())"

Esperado

6