32 最長有效括號

2021-09-18 01:29:46 字數 806 閱讀 7685

給定乙個只包含'('')'的字串,找出最長的包含有效括號的子串的長度。

輸入: "(()"

輸出: 2

解釋: 最長有效括號子串為 "()"

輸入: ")()())"

輸出: 4

解釋: 最長有效括號子串為 "()()"

示例沒有說明, 其實"(())"也是有效的,答案為4

class

solution

:def

longestvalidparentheses

(self, s:

str)

->

int:

a, b =

,[0]

*len

(s)for i, value in

enumerate

(s):

if value ==

'(':

elif a:

b[a.pop()]

, b[i]=1

,1max_num, temp =0,

0for i in b:

if i ==1:

temp +=

1else

: max_num =

max(temp, max_num)

temp =

0return

max(temp, max_num)

32 最長有效括號

給定乙個只包含 和 的字串,找出最長的包含有效括號的子串的長度。示例 1 輸入 輸出 2 解釋 最長有效括號子串為 示例 2 輸入 輸出 4 解釋 最長有效括號子串為 class solution return res dp i 表示以當前位置為終點的最長長度,則只能在 處更新,如果s i 1 dp...

32 最長有效括號

題目.high 字串首先想到dp,以第n個數為結尾的最大括號數,要麼是前面n 1的最大括號數,要麼是一第n個數結尾的括號數 package main import fmt func endlongerst s string int else if rights 0 return pairs func...

32 最長有效括號

給定乙個只包含 和 的字串,找出最長的包含有效括號的子串的長度。示例 1 輸入 輸出 2 解釋 最長有效括號子串為 思路 class solution def longestvalidparentheses self,s ans 0 stack 1 先初始化乙個 1,這樣即使第乙個相減也是得到1 f...