LeetCode 솔루션 분류
[5/24] 32. Longest Valid Parentheses
본문
[LeetCode 시즌 3] 2022년 5월 24일 문제입니다.
https://leetcode.com/problems/longest-valid-parentheses/
32. Longest Valid Parentheses
Hard
8384282Add to ListShareGiven a string containing just the characters '('
and ')'
, find the length of the longest valid (well-formed) parentheses substring.
Example 1:
Input: s = "(()" Output: 2 Explanation: The longest valid parentheses substring is "()".
Example 2:
Input: s = ")()())" Output: 4 Explanation: The longest valid parentheses substring is "()()".
Example 3:
Input: s = "" Output: 0
Constraints:
0 <= s.length <= 3 * 104
s[i]
is'('
, or')'
.
관련자료
-
링크
댓글 1
mingki님의 댓글
- 익명
- 작성일
C++
Runtime: 3 ms, faster than 89.02% of C++ online submissions for Longest Valid Parentheses.
Memory Usage: 7.4 MB, less than 42.64% of C++ online submissions for Longest Valid Parentheses.
Runtime: 3 ms, faster than 89.02% of C++ online submissions for Longest Valid Parentheses.
Memory Usage: 7.4 MB, less than 42.64% of C++ online submissions for Longest Valid Parentheses.
class Solution {
public:
int longestValidParentheses(string s) {
stack<int> st;
int n = s.size();
int maxLen = 0;
st.push(-1);
for (int i = 0; i < n; ++i) {
if (s[i] == '(') st.push(i);
else {
st.pop();
if (st.empty()) st.push(i);
else maxLen = max(maxLen, i - st.top());
}
}
return maxLen;
}
};