基於python3實現
LeeCode 32題
搜到的答案都是java的,試圖用C實現,奈何不熟悉語法,最終還是用的python,主要參考了參考文獻鏈接的思路,講的很詳細。
主要用的是棧,帶入一段’)(()))()(‘試一下也就能理解了
class Solution(object):
def longestValidParentheses(self, s):
"""
:type s: str
:rtype: int
"""
start = 0
m = []
l = len(s)
result = 0
for i in range(l):
if s[i]=='(' :
m.append(i)
elif s[i]==')':
if len(m)<=0:
start = i+1
else :
m.pop()#如果有對應的右括號就將 m中的相對應的左括號彈出
if len(m)<=0:
result = max(result,i-start+1)
else:
result = max(result,i-int(m[-1]))
return result