Menu
CoddyTech

Longest Valid Parentheses

Recibes una cadena s formada únicamente por los caracteres ( y ). Encuentra la subcadena más larga (una secuencia de caracteres consecutivos) que esté bien formada: cada ( en ella se cierra con un ) posterior también en ella, y los pares están anidados correctamente, como en (()()). Devuelve la longitud de esa subcadena, o 0 si ni siquiera aparece ().

Función

longestValidParentheses(s: string) → integer
sstring
una cadena de caracteres ( y )
Devuelveinteger
la longitud de la subcadena bien formada más larga, o 0 si no hay ninguna

Restricciones

  • 1 ≤ s.length ≤ 6 × 104
  • Cada carácter de s es ( o ).

Ejemplos

Entrada
s = "()(())"
Salida
6
Explicación
La cadena completa está bien formada: () seguida de (()). Dos partes bien formadas una al lado de la otra forman una sola parte bien formada, así que la respuesta son los 6 caracteres.

lock icon+21 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿También puedes indicar dónde empieza la subcadena bien formada más larga, eligiendo la que aparece más a la izquierda cuando varias tienen la misma longitud?

Restablecer código
def longestValidParentheses(s):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

s = "()(())"

Esperado

6