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