1class Solution:
2 def longestValidParentheses(self, s: str) -> int:
3
4 lefts = rights = 0
5 longest = 0
6
7 for ch in s:
8 if ch == "(":
9 lefts += 1
10 else:
11 rights += 1
12 if lefts == rights:
13 longest = max(longest, 2 * rights)
14 elif lefts < rights:
15 lefts = rights = 0
16
17 lefts = rights = 0
18
19 for ch in s[::-1]:
20 if ch == "(":
21 lefts += 1
22 else:
23 rights += 1
24 if lefts == rights:
25 longest = max(longest, 2 * rights)
26 elif lefts > rights:
27 lefts = rights = 0
28
29 return longest