classSolution:# 正向逆向相结合deflongestValidParentheses(self, s:str)->int:
n, left, right, max_length =len(s),0,0,0# 正序遍历for i inrange(n):if s[i]=="(":
left +=1else:
right +=1if left == right:
max_length =max(max_length,2* left)elif right > left:
left = right =0# 逆序遍历
left = right =0for i inrange(n -1,-1,-1):if s[i]==")":
right +=1else:
left +=1if left == right:
max_length =max(max_length,2* left)elif left > right:
left = right =0return max_length