leetcode第32题:最长有效括号

关于括号匹配或生成的问题,首先想到的是栈。
本题易错点:返回值为连续有效()的长度, 即()(()这种情况下,返回值为2
# 去除字符串首的连续)和字符串尾得连续(
while True:
if not s or len(s)==1:return 0
if s[0]==')':s= s[1:]
if s[-1] =='(':s=s[:-1]
else:break
res = 0
# 定义栈
stack = [-1]
for i in range(len(s)):
# 为(时,将索引压入栈中
if s[i] == "(":
stack.append(i)
else:
# 为)时,弹出栈首索引,完成匹配
stack.pop()
# 若弹出栈首后为空了,则将索引压入
if len(stack)==0:
stack.append(i)
else:
# 当前)的索引-剩余未匹配(的最大索引值= 有效长度
res = max(res,i - stack[-1])
return res
该解法最难点在于
res = max(res,i - stack[-1])
由于压入的字符串的索引,当完成两两匹配后,当前)的索引值-栈内剩余(最大的索引值 = 有效长度
将该有效长度与之前的对比取最大值。
leetcode第32题:最长有效括号的更多相关文章
- Leetcode(32)-最长有效括号
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()&quo ...
- 32、最长有效括号 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(32)最长有效括号 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 "滑动窗 ...
- 【python】Leetcode每日一题-最长公共子序列
[python]Leetcode每日一题-最长公共子序列 [题目描述] 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度.如果不存在 公共子序列 ,返回 0 . ...
- 【LeetCode 32】最长有效括号
题目链接 [题解] 设dp[i]表示以第i个字符结尾的最长有效括号的长度. 显然只要考虑s[i]==')'的情况 则如果s[i-1]=='(',则dp[i] = dp[i-2]+2; 如果s[i-1] ...
- [LeetCode] Longest Valid Parentheses 最长有效括号
Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...
- LeetCode 第五题 最长的回文字符串 (JAVA)
Longest Palindromic Substring 简介:字符串中最长的回文字符串 回文字符串:中心对称的字符串 ,如 mom,noon 问题详解: 给定一个字符串s,寻找字符串中最长的回文字 ...
- leetcode python 032 识别最长合法括号
# 给定一个只包含字符'('和')'的字符串,# 找到最长的有效(格式良好)括号子字符串的长度.# 对于“(()”,最长的有效括号子串是“()”,其长度为2.# 另一个例子是“)()())”,其中最长 ...
- LeetCode第20题:有效的括号
问题描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空 ...
- leetcode第32题--Search in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...
随机推荐
- windows 安装svn 要点(非安装步骤)
http://www.visualsvn.com/files/VisualSVN-Server-2.5.6.msi 下载服务端 windows2008搭建svn 1.360软件管家下载 Visua ...
- javascript中的location的用法
javascript中的location.href有很多种用法,主要如下. self.location.href="/url" 当前页面打开URL页面 location.href= ...
- 如何升级Powershell How to upgrade powershell 5
查看当前版本 Win+R 输入 powershell 进入. 输入:$PSVersionTable 可以看到PS的version: 当前是2.0 下载WMF Windows Management Fr ...
- Python笔记_第二篇_面向过程_第二部分_4.常用模块的简单使用_import语句的解释
1. import语句.from...import语句.from...import*语句 解释:注意一定要在体同一级目录下 1.1 引入模块 格式:import module[,module2,... ...
- P1781 宇宙总统
题目地址:https://www.luogu.com.cn/problem/P1781 题目描述:地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有 n 个非凡拔尖的人竞选总统,现在票 ...
- MplayerX 安装
从老的笔记本中,把MplayerX.app 复制到新笔记本并放到应用程序目录中,可以直接用. 但播放时出现花屏,百度得到原因是新的硬件加速不支持, 解决办法是,在偏好设置-> 高级 -> ...
- jmlr论文下载
下载脚本 #!/bin/bash # down_jmlr.sh ver=$1 wget http://www.jmlr.org/papers/$ver/ -O index.htm cat index. ...
- Android开发学习2--Android Studio目录结构、Module目录介绍、Android创建及运行和HelloWord的扩展----极其简单的游戏界面
学习笔记: 1.Android Studio项目结构 Android Studio提供了很多项目结构,最常用的是Android 和 project Project列举出了所有文件. 建议使用Andro ...
- TPO9-2Reflection in Teaching
Teachers, it is thought, benefit from the practice of reflection, the conscious act of thinking deep ...
- SOA,ROA 比较
1.SOA 面向服务架构 业务被抽象成服务 SOA架构中的对外服务一般都由web service来暴露 SOA架构中的内部服务一般由某种高效的RPC调用来暴露,当然了 也可以用web service来 ...