Menu
CoddyTech

Longest Valid Parentheses

Kamu mendapatkan string s yang hanya terdiri dari karakter ( dan ). Temukan substring terpanjang (rangkaian karakter yang berurutan) yang tersusun dengan benar: setiap ( di dalamnya ditutup oleh ) yang muncul setelahnya di dalamnya, dan pasangan tanda kurung tersarang dengan benar, seperti pada (()()). Kembalikan panjang substring tersebut, atau 0 jika bahkan () pun tidak muncul.

Fungsi

longestValidParentheses(s: string) → integer
sstring
serangkaian karakter ( dan )
Mengembalikaninteger
panjang substring valid terpanjang, atau 0 jika tidak ada

Batasan

  • 1 ≤ s.length ≤ 6 × 104
  • Setiap karakter dari s adalah ( atau ).

Contoh

Input
s = "()(())"
Output
6
Penjelasan
Seluruh string tersusun dengan benar: () diikuti (()). Dua bagian yang tersusun dengan benar jika disandingkan akan membentuk satu kesatuan, jadi jawabannya adalah semua 6 karakter.
challenge icon

Pertanyaan lanjutan

Bisakah kamu juga melaporkan posisi awal substring yang terbentuk dengan benar dan paling panjang, dengan memilih yang paling kiri jika ada beberapa substring dengan panjang yang sama?

Reset kode
def longestValidParentheses(s):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

s = "()(())"

Output yang diharapkan

6