[LeetCode] Longest Valid Parentheses 解题报告
来源:互联网 发布:淘宝店旺铺是什么 编辑:程序博客网 时间:2024/06/05 03:53
原题链接
Given a string containing just the characters
'('
and')'
, find the length of the longest valid (well-formed) parentheses substring.For
"(()"
, the longest valid parentheses substring is"()"
, which has length = 2.Another example is
")()())"
, where the longest valid parentheses substring is"()()"
, which has length = 4.
思路
建一个栈,记录上一个左括号的位置指针:遇到左括号就压栈,遇到右括号时检测栈里是不是非空的。如果非空,那就弹出一个并记录当前“有效段”长度;若是空的,说明当前这个右括号非法,意味着“有效段”到此为止了,更新pBegin(它指向“有效段”的第一个左括号)。
代码
class Solution {public: int longestValidParentheses(string s) { const char* str=s.c_str(),*pbegin=str; int maxlen=0; vector<const char*> sta; for (const char* p=str;*p;p++) { if (*p=='(') { sta.push_back(p); } // ')' else { if (sta.size()>0) { sta.pop_back(); int len; if (sta.size()>0) len=p-sta.back(); else len=p-pbegin+1; maxlen=len>maxlen?len:maxlen; } else { pbegin=p+1; } } } return maxlen; }};
0 0
- [LeetCode]Longest Valid Parentheses, 解题报告
- LeetCode Longest Valid Parentheses 解题报告
- [LeetCode] Longest Valid Parentheses 解题报告
- 【LeetCode】Longest Valid Parentheses 解题报告
- [leetcode] 32. Longest Valid Parentheses 解题报告
- [Leetcode] 32. Longest Valid Parentheses 解题报告
- Leetcode 32 Longest Valid Parentheses 解题报告。
- LeetCode解题报告--Valid Parentheses
- [LeetCode] Valid Parentheses 解题报告
- [LeetCode] Valid Parentheses 解题报告
- 【LeetCode】Valid Parentheses 解题报告
- Leetcode Valid Parentheses 解题报告
- leetcode解题方案--032--Longest Valid Parentheses
- [leetcode] 20. Valid Parentheses 解题报告
- [Leetcode] 20. Valid Parentheses 解题报告
- leetcode解题报告20. Valid Parentheses
- LeetCode: Longest Valid Parentheses
- LeetCode Longest Valid Parentheses
- SCRUM+禅道+Jenkis(svn)+confluence
- 简单的文件拷贝程式码
- va_list、va_start、va_arg、va_end等利用宏定义实现可变参数
- oracle常用的查询语句
- Oracle CRS/GI 进程介绍
- [LeetCode] Longest Valid Parentheses 解题报告
- 算法导论学习之一步接一步笔记
- Missing number
- ORACLE权限管理调研笔记
- [LeetCode]154.Find Minimum in Rotated Sorted Array II
- windows驱动编程学习(2)--------第一个驱动 hello
- The Second--Static in java
- opencv学习测试代码笔记
- 用cocos2dx实现一个秒表级的计时器。