题解 | #最长的括号子串#
最长的括号子串
http://www.nowcoder.com/practice/45fd68024a4c4e97a8d6c45fc61dc6ad
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @return int整型
#
class Solution:
def longestValidParentheses(self , s: str) -> int:
# write code here
flag=[0]*len(s)
stack=[]
for i in range(len(s)):
# 直到遇到第一个有效的左括号
if not stack and s[i]==')':
continue
# 存左括号的下标
if s[i]=='(':
stack.append(i)
else:
# 遇到右括号就弹出一个左括号
# 把flag数组里的弹出左括号的位置和进来的右括号的位置变成1
j=stack.pop()
flag[i]=1
flag[j]=1
res=0
temp=0
# 计算flag里的连续1的个数
for i in flag:
if i==1:
temp+=1
res=max(res,temp)
else:
temp=0
return res