Longest Valid Parentheses LeetCode solution in C++

1
class Solution {
2
public:
3
int longestValidParentheses(string s) {
4
int n = s.length(), i = 0, ans = 0, k = 0;
5
for (int j = 0; j < n; j++) {
6
if (s[j] == '(')
7
k++;
8
else if (s[j] == ')') {
9
k--;
10
if (k == 0) ans = max(ans, j - i + 1);
11
}
12
if (k < 0) {
13
k = 0;
14
i = j + 1;
15
}
16
}
17
k = 0, i = n - 1;
18
for (int j = n - 1; j >= 0; j--) {
19
if (s[j] == ')') {
20
k++;
21
} else if (s[j] == '(') {
22
k--;
23
if (k == 0) ans = max(ans, i - j + 1);
24
}
25
if (k < 0) {
26
k = 0;
27
i = j - 1;
28
}
29
}
30
return ans;
31
}
32
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0