Menu
CoddyTech

Longest Valid Parentheses

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

Функция

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

Ограничения

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

Примеры

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

lock icon+21 скрытых тестов при отправке

challenge icon

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

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

Сбросить код
def longestValidParentheses(s):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

s = "()(())"

Ожидается

6