1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[leetcode]Longest Valid Parentheses

Posted on 2014-01-08 21:36  1957  阅读(411)  评论(0编辑  收藏  举报

就是做个扫描,能匹配的算下多长,如果不能匹配.就继续从后开始.

 

class Solution {
public:
    int longestValidParentheses(string s) {
        stack<int> st;
        int last = -1;
        int maxlen = 0;
        for(int i = 0 ; i < s.size() ; i++)
        {
            if(s[i] == '(') st.push(i);
            else{
                if(st.empty()){
                    last = i;
                }else{
                    st.pop();
                    if(st.empty()){
                        maxlen = max(maxlen , i - last);
                    }else{
                        maxlen = max(maxlen , i - st.top());
                    }
                }
            }
        }
        return maxlen;
    }
};