[leetcode]Longest Valid Parentheses
来源:互联网 发布:有赞 知乎 编辑:程序博客网 时间:2024/06/06 00:00
题目介绍:
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.
Subscribe to see which companies asked this question
判断字符串是否是合法的函数如下:
public boolean isValid(String s){if(s==null||s.length()<2)return false;int len=s.length();if(len%2!=0)return false;Stack<Character> stack=new Stack<Character>();for(int i=0;i<s.length();i++){if(s.charAt(i)=='(') stack.push('(');else{if(stack.isEmpty())return false;else stack.pop();}}if(stack.isEmpty())return true;return false;}
本题目的解法代码如下:
public int longestValidParentheses(String s) { if(s==null||s.length()<2)return 0;int len=s.length();Stack<Character> stack=new Stack<Character>();Stack<Integer> stackNum=new Stack<Integer>();boolean isValid[]=new boolean[len];for(int i=0;i<len;i++) isValid[i]=false;for(int i=0;i<len;i++){if(s.charAt(i)=='('){stack.push('(');stackNum.push(i);}else{if(!stack.isEmpty()){stack.pop();int k=stackNum.pop();isValid[i]=true;isValid[k]=true;}}}int result=0;int max=0;for(int i=0;i<len;i++){if(isValid[i]){result++;while(i+1<len&&isValid[i+1]){result++;i++;}}else{if(result>max)max=result;result=0;}if(result>max)max=result;}return max; }
1 0
- LeetCode: Longest Valid Parentheses
- LeetCode Longest Valid Parentheses
- LeetCode: Longest Valid Parentheses
- [Leetcode] Longest Valid Parentheses
- [leetcode]longest Valid Parentheses(!!)
- [Leetcode] Longest Valid Parentheses
- leetcode Longest Valid Parentheses
- 【leetcode】Longest Valid Parentheses
- [LeetCode]Longest Valid Parentheses
- [leetcode] Longest Valid Parentheses
- LeetCode-Longest Valid Parentheses
- [LeetCode] Longest Valid Parentheses
- LeetCode:Longest Valid Parentheses
- Leetcode: Longest Valid Parentheses
- Leetcode:Longest Valid Parentheses
- leetcode Longest Valid Parentheses
- leetcode Longest Valid Parentheses
- LeetCode Longest Valid Parentheses
- 银行卡校验规则(Luhn算法)
- iOS开发 - "Cast from pointer to smaller type 'int' loses information” 解决办法
- 解决iOS8.0以上系统下无法通过代码创建被删除过的同名相册 ( iOS 8 Photos framework: Create a albums with iOS8 )
- 手机充电原理
- 当 ITOA 遇上 OneAlert,企业可以至少每年节省 3600 小时!
- [leetcode]Longest Valid Parentheses
- 【SPOJ-AGGRCOW】【BZOJ1734】【POJ2456】Aggressive cows【二分】【贪心】
- mybatis之高级查询
- 李航博士:浅谈我对机器学习的理解
- Oracle Study之--AIX RAC下OCR磁盘故障(PROT-602)
- 数组元素删除与排序
- AppDelegate文件的介绍和使用
- dataset和datareader的区别
- 【Android效果集】学习ExplosionField之粒子破碎效果