首页 > 其他 > 详细

leetcode32

时间:2019-03-07 13:22:45      阅读:175      评论:0      收藏:0      [点我收藏+]
 1 class Solution {
 2 public:
 3     int longestValidParentheses(string s) {
 4         int n = s.length(), longest = 0;
 5         stack<int> st;
 6         for (int i = 0; i < n; i++) {
 7             if (s[i] == () st.push(i);
 8             else {
 9                 if (!st.empty()) {
10                     if (s[st.top()] == () st.pop();
11                     else st.push(i);
12                 }
13                 else st.push(i);
14             }
15         }
16         if (st.empty()) longest = n;
17         else {
18             int a = n, b = 0;
19             while (!st.empty()) {
20                 b = st.top(); st.pop();
21                 longest = max(longest, a-b-1);
22                 a = b;
23             }
24             longest = max(longest, a);
25         }
26         return longest;
27     }
28 };

参考:https://leetcode.com/problems/longest-valid-parentheses/discuss/14126/My-O(n)-solution-using-a-stack

leetcode32

原文:https://www.cnblogs.com/asenyang/p/10488744.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!