在Python中找到给定字符串中最长有效括号的长度
假设我们有一个字符串s。这个字符串包含打开和关闭括号。我们要找到最长有效(格式正确)的括号子字符串的长度。因此,如果输入为“))(())()”,则结果将为6,因为有效字符串为“(())()”。
为了解决此问题,我们将遵循以下步骤 −
- 创建一个堆栈,并插入-1,设置ans := 0
-
对于i在范围0到堆栈长度-1之间
- 如果s[i]是打开括号,则将i插入堆栈
-
否则
- 如果堆栈不为空且堆栈顶部不是-1,s[堆栈顶部]是打开括号,则
-
弹出堆栈顶部元素
-
ans := ans和i-堆栈顶部的最大值
-
否则将i插入堆栈
-
返回ans
示例
让我们看以下实现以获得更好的理解−