Menu
CoddyTech

Longest Valid Parentheses

Bạn nhận được một chuỗi s chỉ gồm các ký tự ( và ). Hãy tìm chuỗi con dài nhất (một dãy ký tự liên tiếp) có cấu trúc hợp lệ: mỗi ( trong đó đều được đóng bởi một ) xuất hiện sau nó trong chuỗi con, và các cặp được lồng đúng cách, như trong (()()). Trả về độ dài của chuỗi con đó, hoặc 0 nếu không có cả ().

Hàm

longestValidParentheses(s: string) → integer
sstring
một chuỗi gồm các ký tự ( và )
Trả vềinteger
độ dài của chuỗi con đúng định dạng dài nhất, hoặc 0 nếu không có

Ràng buộc

  • 1 ≤ s.length ≤ 6 × 104
  • Mỗi ký tự của s là ( hoặc ).

Ví dụ

Đầu vào
s = "()(())"
Đầu ra
6
Giải thích
Toàn bộ chuỗi đều hợp lệ: () theo sau là (()). Ghép hai phần hợp lệ cạnh nhau sẽ tạo thành một phần, vậy nên đáp án gồm đủ 6 ký tự.
challenge icon

Câu hỏi mở rộng

Bạn cũng có thể cho biết vị trí bắt đầu của chuỗi con hợp lệ dài nhất, chọn chuỗi nằm bên trái nhất nếu có nhiều chuỗi cùng độ dài không?

Đặt lại code
def longestValidParentheses(s):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

s = "()(())"

Đầu ra mong đợi

6