NO32.有效的括号
暴力解法,俩次循环第一次记录(的每个下标,再分别做判断 class Solution: def longestValidParentheses(self, s: str) -> int: lg = len(s) nums = [i for i in range(lg) if s[i] == '('] if len(nums) == lg: return 0 ret = 0 for left in nums: a, b = 0, 0 for i in range(left, lg): if s[i] == '(': a += 1 else: b += 1 if a == b: ret = max(ret, a * 2) elif b > a: break return ret
#括号匹配,由于是一对因此想到栈,只是需要考虑如何表示有效长度的问题 class Solution: def longestValidParentheses(self, s: str) -> int: res = 0 stack = [-1] #为了方便记录当前有效长度 for i,c in enumerate(s): if c=='(':# 如果是(,直接进栈 stack.append(i) elif len(stack)==1: #代表stack已经没有( stack.pop() stack.append(i) else: stack.pop() res = max(res,i-stack[-1]) #更新 return res
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)