zoukankan      html  css  js  c++  java
  • leetcode python 032 识别最长合法括号

    # 给定一个只包含字符'('和')'的字符串,
    # 找到最长的有效(格式良好)括号子字符串的长度。
    # 对于“(()”,最长的有效括号子串是“()”,其长度为2。
    # 另一个例子是“)()())”,其中最长的有效括号子串是“()()”,其长= 4

    def find_long_valid(s):
        stack,rec,ind=[],0,0
        for i,v in enumerate(s):
            if v=='(':
                print('i %s,append %s'%(i,i))
                stack.append(i)
            elif len(stack)==0:
                rec=max(rec,ind)
                print('i %s,invalid rec %s,ind %s'%(i,rec,ind))
                ind=0           
            elif len(stack)==1:
                print(ind)
                ind+=i-stack.pop()+1
                print('i %s,valid rec %s,ind %s'%(i,rec,ind))
            else:
                stack.pop()
        return max(rec,ind)
        

    s=')()((())))()()()()()()()()()((()))'
    print(find_long_valid(s))

    ----蚂蚁不在线
  • 相关阅读:
    LightOJ 1300 边双联通分量+交错路染色
    HDU 6143 快速幂,组合数
    windows 下fc工具
    HDU 6136 模拟
    HDU 6129 暴力,规律
    UVA Live 7770 模拟
    1096: [ZJOI2007]仓库建设
    1191: [HNOI2006]超级英雄Hero
    3224: Tyvj 1728 普通平衡树
    1208: [HNOI2004]宠物收养所
  • 原文地址:https://www.cnblogs.com/offline-ant/p/9387841.html
Copyright © 2011-2022 走看看