Menu
CoddyTech

Longest Valid Parentheses

Ti viene data una stringa s composta solo dai caratteri ( e ). Trova la sottostringa più lunga (una sequenza di caratteri consecutivi) ben formata: ogni ( al suo interno è chiusa da una ) successiva al suo interno e le coppie sono annidate correttamente, come in (()()). Restituisci la lunghezza di questa sottostringa, oppure 0 se non compare nemmeno ().

Funzione

longestValidParentheses(s: string) → integer
sstring
una stringa di caratteri ( e )
Restituisceinteger
la lunghezza della sottostringa corretta più lunga, oppure 0 se non ce n'è nessuna

Vincoli

  • 1 ≤ s.length ≤ 6 × 104
  • Ogni carattere di s è ( oppure ).

Esempi

Input
s = "()(())"
Output
6
Spiegazione
L'intera stringa è ben formata: () seguita da (()). Due parti ben formate affiancate formano una parte ben formata, quindi la risposta è costituita da tutti e 6 i caratteri.

lock icon+21 test nascosti all’invio

challenge icon

Per approfondire

Puoi anche indicare dove inizia la sottostringa ben formata più lunga, scegliendo quella più a sinistra quando ce ne sono diverse della stessa lunghezza?

Ripristina il codice
def longestValidParentheses(s):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

s = "()(())"

Atteso

6