欢迎来真孝善网,为您提供真孝善正能量书籍故事!

Python编程:解析LeetCode——最长有效括号问题详解

时间:11-14 名人轶事 提交错误

大家好,今天给各位分享Python编程:解析LeetCode——最长有效括号问题详解的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

特别注意:栈是否为空

参考代码如下:

类解决方案:

def 最长有效括号(self, s):

"""

:型s: str

:rtype: 整数

"""

如果len(s)==0 或len(s)==1:

返回0

堆栈=[]

j=0

最大长度=0

而j len(s):

如果s[j]=="(":

堆栈.追加(j)

如果s[j]==")":

如果len(stack) 和s[stack[-1]]=="(":

堆栈.pop()

iflen(堆栈):

镜头=j - 堆栈[-1]

如果镜头max_len:

max_len=镜头

否则:

透镜=j+1

如果镜头max_len:

max_len=镜头

否则:

堆栈.追加(j)

j +=1

return max_len 解决方案2:动态规划(待更新)

动态规划的思想是,我们用一个list:dp来记录字符串s中第i个元素的有效匹配长度。

只有当前字符为“)”时才可能匹配,所以我们重点关注两种情况:“()”和“))”

"()":dp[i]=dp[i - 2] + 2 #历史匹配数直接加22。"))":

if i - dp[i-1] - 1=0: # 确保没有超出索引

if s[i - dp[i - 1] - 1]=="(": #最后一个“)”是否匹配

dp[i]=dp[i - 1] + dp[i - dp[i - 1] - 2] + 2 # 将2添加到历史匹配中。完整代码如下:

类解决方案:

def 最长有效括号(self, s):

"""

:型s: str

:rtype: 整数

"""

dp=[]

镜头=镜头

如果镜头2:

返回0

# 初始化dp 列表

j=0

而j镜头:

dp.追加(0)

j +=1

我=1

当我镜头:

如果s[i]==")" 且s[i - 1]=="(":

dp[i]=dp[i - 2] + 2

如果s[i]==s[i - 1]==")":

如果i - dp[i-1] - 1=0:

如果s[i - dp[i - 1] - 1]=="(":

dp[i]=dp[i - 1] + dp[i - dp[i - 1] - 2] + 2

我+=1

返回max(dp)源码地址:

https://github.com/jediL/LeetCodeByPython

OK,本文到此结束,希望对大家有所帮助。

用户评论

淡写薰衣草的香

这篇文章正好是我现在在学习的!终于有人来讲解这个题了。

    有19位网友表示赞同!

减肥伤身#

感觉LeetCode上找答案真难,有了这种详细的 python 解释才能好好理解

    有18位网友表示赞同!

慑人的傲气

32题一直是个挑战,期待学习一下你的解法!

    有9位网友表示赞同!

落花忆梦

我想知道这道题还有哪些优化空间吗?

    有14位网友表示赞同!

发呆

Python 代码写起来还是比较舒服啊。

    有18位网友表示赞同!

ヅ她的身影若隐若现

最长有效括号这个概念很有意思,真想深入了解一下

    有10位网友表示赞同!

龙吟凤

分享这份讲解的同学牛逼!太实用了!

    有10位网友表示赞同!

▼遗忘那段似水年华

看到这篇文章我就决定好好刷LeetCode了。

    有6位网友表示赞同!

龙吟凤

感谢这种干货满满的解答,以后遇到类似问题可以参考参考。

    有17位网友表示赞同!

裸睡の鱼

LeetCode真有意思,每次都能学到一些新的知识点。

    有17位网友表示赞同!

浮世繁华

这段代码写的真是太精简了!佩服你的水平啊

    有14位网友表示赞同!

肆忌

希望你以后也能讲解其他的 LeetCode 题目!

    有7位网友表示赞同!

一纸愁肠。

最长有效括号这个问题在工作中可能会用到吗?

    有17位网友表示赞同!

←极§速

这篇文章真的很好理解,比那些模糊不清的答案好多了

    有10位网友表示赞同!

安陌醉生

学习LeetCode 的主要目的是为了提高编程能力吧

    有19位网友表示赞同!

野兽之美

这种讲解方式太适合我这种入门者了!

    有14位网友表示赞同!

墨城烟柳

感觉自己离成为一名合格程序员还有很远的路要走啊!

    有19位网友表示赞同!

在哪跌倒こ就在哪躺下

希望我能像作者一样写出清晰易懂的代码!

    有12位网友表示赞同!

如你所愿

我要把这篇文章收藏起来,留着以后参考!

    有8位网友表示赞同!

来自火星球的我

学习编程真是件很有意思的事情!

    有8位网友表示赞同!

【Python编程:解析LeetCode——最长有效括号问题详解】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活