题解 | #最长的括号子串#

最长的括号子串

http://www.nowcoder.com/practice/45fd68024a4c4e97a8d6c45fc61dc6ad

括号序列问题 https://leetcode-cn.com/problems/longest-valid-parentheses/solution/gua-hao-xu-lie-wen-ti-xiang-jie-han-xian-h7rn/

定义 start 为上一段不合法括号序列的最后一个右括号的位置,初始值为 -1

遍历字符串

  1. 如果是左括号,将其下标压入栈

  2. 如果是右括号

1)当前栈不为空,说明有可以匹配的左括号,则弹出左括号

a)如果栈还不为空,则用栈顶的下一个位置更新长度 `i - stk.top()`
b)否则栈为空,则从 [start + 1, i] 位置是一个合法括号序列,更新长度 `i - start`

2)当前栈为空,说明当前位置 i 是第一次出现的右括号不是合法序列,所以更新 start = i

全部评论

相关推荐

点赞 评论 收藏
分享
zzzzhz:兄弟你先猛猛投简历至少三百家,能约到面试就去面。最近可以速成智能小车,智慧家居烂大街的项目,不需要自己写,只需要把里面的代码讲解看明白就行。把其中涉及到的八股文都拿出来单独背一下,我去年找工作就一个智能小车智慧家居找了10k差不多。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务