• [leetcode] Longest Valid Parentheses @python


    Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring.

    For "(()", the longest valid parentheses substring is "()", which has length = 2.

    Another example is ")()())", where the longest valid parentheses substring is "()()", which has length = 4.

    Solution 1: This solution is more natural and easy to understand.

    class Solution:
        # @param s, a string
        # @return an integer
        def longestValidParentheses(self, s):        
            stack = [(-1, ')')]
            maxLen = 0
            for i in range(len(s)):
                if s[i] == ')' and stack[-1][1] == '('
                    stack.pop()
                    maxLen = max(maxLen, i - stack[-1][0])
                else:
                    stack.append( (i, s[i]) )
            return maxLen

    Solution 2: It is smart but not practical

    class Solution:
        # @param s, a string
        # @return an integer
        def longestValidParentheses(self, s):
            #解题思路:返回括号串中合法括号串的长度。使用栈。这个解法比较巧妙,开辟一个栈,压栈的不是括号,而是未匹配左括号的索引!
            maxLen = 0
            stack = []
            last = -1
            for i in range(len(s)):
                if s[i] == '(':
                    stack.append(i)
                else:
                    if stack == []:
                        last = i
                    else:
                        stack.pop()
                        if stack == []:
                            maxLen = max(maxLen, i - last)
                        else:
                            maxLen = max(maxLen, i - stack[-1])
            return maxLen

     参考致谢:

    [1] http://sumnous.github.io/blog/2014/05/10/leetcode-longest-valid-parentheses-at-python/

    [2] http://www.cnblogs.com/zuoyuan/p/3780312.html

  • 相关阅读:
    G D 3 2 预 处 理 符 号 配 置 中 定 义
    指针接收函数
    SMT(SF)
    电流高端采样问题
    简单分析一个采集交流电压平均值的电路
    i--和--i的区别
    结构体共用体的使用
    .net Filter 和 代理模式杂谈
    Spring boot 日志 Logback
    spring boot 使用 mongodb
  • 原文地址:https://www.cnblogs.com/asrman/p/4002978.html
Copyright © 2020-2023  润新知