Longest Valid Parentheses
来源:互联网 发布:图像算法工程师 知乎 编辑:程序博客网 时间:2024/06/06 08:26
#include <iostream>#include <stack>#include <string>#include <algorithm>using namespace std;/**Longest Valid ParenthesesGiven 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.思路:1.设置一个栈来保存可以待匹配的‘(’,由于只有'(' 和' )' ,所以可以简单的用if -else表示2.如果栈是空的(匹配完了上一组()情况,或者之前根本没有可以匹配的例如多个“))” ),这时设置一个last来记录最近未匹配的索引值3.如果栈非空,则计算i和sta.top()的差值找到最大长度*/class Solution {public: int longestValidParentheses(string s) { if(s == "") return 0; int maxvalid = 0; int last = -1,i ; stack<int> sta; for(i=0;i < s.length();i++){ if(s[i] == '(') sta.push(i); else{ if(sta.empty()) last = i; else{ sta.pop(); if(sta.empty()) maxvalid = max(maxvalid, i-last); else maxvalid = max(maxvalid,i-sta.top()); } } } return maxvalid; }};int main(){ string s = ")()()((()()()()()"; Solution sol; int r = sol.longestValidParentheses(s); cout << r << endl; return 0;}
0 0
- 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
- Unity配合VS2012来使用的一些插件集合
- mysql 里面的 IF 判断 CASE 和存储过程 MYSQ IF ELSE 判断 时间添加 DATE_ADD 总结
- 数论模版-欧拉函数、莫比乌斯函数和素数
- 第九周项目六(任务委派)
- 国外程序员整理的 C++ 资源大全
- Longest Valid Parentheses
- 收藏网址
- 设置vim支持中文编码GB2312和Unicode编码UTF8
- spring实战笔记6---springMVC的请求过程
- JSP连接Mysql的数据库连接池配置相关
- 【例 2.8】
- 第九周项目6-穷举法 换硬币
- Linux输入子系统:输入设备编程指南 -- input-programming.txt
- github push 出现connection refused 的处理办法