Longest Valid Parentheses
来源:互联网 发布:sql 查询一天内的数据 编辑:程序博客网 时间:2024/06/06 00:59
Longest Valid Parentheses
Total Accepted: 1328 Total Submissions: 7382Given 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.
Go to Original!
一见到括号匹配,首先想到的就是栈了。
思路:维护两个栈,一个用来记录索引,另一个记录是左右括号;
一旦当前处理括号“)”和栈顶“(”相匹配构成一对,即扔掉。
最终如果栈为空时,字符长即为括号长。如果不为空,栈里元素肯定为无法匹配的括号。
核心,记录连续扔掉的匹配对的长度即为返回值。
int longestValidParentheses(string s) {
int max=0;
int l = s.length();
stack<int> indexs;
stack<bool> lefts;
for(int i = 0; i < l; i++){
if(s[i] == '('){
indexs.push(i);
lefts.push(true);
}
else{
if(indexs.size() > 0 && lefts.top()){
indexs.pop();
lefts.pop();
int tmp = indexs.empty() ? i + 1 : i - indexs.top();
if(max < tmp) max = tmp;
}
else{
indexs.push(i);
lefts.push(false);
}
}
}
return max;
}
- LeetCode: Longest Valid Parentheses
- LeetCode Longest Valid Parentheses
- LeetCode: Longest Valid Parentheses
- [Leetcode] Longest Valid Parentheses
- [leetcode]longest Valid Parentheses(!!)
- Longest Valid Parentheses
- Longest Valid Parentheses
- [Leetcode] Longest Valid Parentheses
- leetcode Longest Valid Parentheses
- LeetCode31:Longest Valid Parentheses
- longest valid parentheses
- Longest Valid Parentheses
- 【leetcode】Longest Valid Parentheses
- Longest Valid Parentheses
- [LeetCode]Longest Valid Parentheses
- Longest Valid Parentheses
- Longest Valid Parentheses
- Longest Valid Parentheses
- win7(64)未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序
- android 中有哪几种解析xml的类?
- java 对mysql数据的增删改查
- SQL删除重复数据只保留一条
- 单片机LY5A-L1B开发板笔记
- Longest Valid Parentheses
- WinCE下多线程编程
- 谈谈需求(上)
- OpenGL进阶(十四) - UVN Camera实现
- 为程序添加版本自动更新功能 android
- Linux服务笔记:Telnet远程登录
- 操作系统常见面试题总结
- TCP传输,客户端和服务器通信
- JSP和Servlet面试题精选