Menu
CoddyTech

Longest Valid Parentheses

Дана строка s, состоящая только из символов ( и ). Найдите самую длинную подстроку (непрерывную последовательность символов), которая является правильной скобочной последовательностью: каждая ( в ней закрывается более поздней ), и скобки правильно вложены, как в (()()). Верните длину этой подстроки или 0, если в строке нет даже ().

Функция

longestValidParentheses(s: string) → integer
sstring
строка из символов ( и )
Возвращаетinteger
длина самой длинной корректно сформированной подстроки или 0, если такой нет

Ограничения

  • 1 ≤ s.length ≤ 6 × 104
  • Каждый символ s — это ( или ).

Примеры

Ввод
s = "()(())"
Вывод
6
Пояснение
Вся строка составлена правильно: (), за которыми следует (()). Два правильно составленных фрагмента рядом образуют один правильно составленный фрагмент, поэтому ответ — все 6 символов.
challenge icon

Дополнительный вопрос

Можешь также сообщить, где начинается самая длинная корректно сформированная подстрока, выбирая самую левую, если несколько подстрок имеют одинаковую длину?

Сбросить код
def longestValidParentheses(s):
    # Напишите код здесь

Тест #1

Тест #2

Тест #3

Аргумент

s = "()(())"

Ожидаемый вывод

6