LongestValidParentheses, 求最长合法括号子串长度-----同类问题ValidParentheses,GenerateParentheses
2016-06-08 19:41
666 查看
问题描述:求括号字符串中最长合法子串长度。例如:()((),返回2,而不是4.
算法分析:还是利用栈,和判断合法括号对是一样的。
算法分析:还是利用栈,和判断合法括号对是一样的。
public static int longestValidParentheses(String s) { Stack<int[]> stack = new Stack<int[]>(); int result = 0; for(int i=0; i<=s.length()-1; i++) { char c = s.charAt(i); if(c=='(')//如果是左括号 { int[] a = {i,0}; stack.push(a); } else//如果是右括号 { if(stack.empty()||stack.peek()[1]==1)//如果栈为空或者栈顶元素为右括号 { int[] a = {i,1}; stack.push(a); } else { stack.pop(); int currentLen=0; if(stack.empty()) { currentLen = i+1; } else { currentLen = i-stack.peek()[0]; } result = Math.max(result, currentLen); } } } return result; }
相关文章推荐
- 项目42--两个成员的类模板
- c++:类的组合秋圆的周长与面积与球的体积
- 将字符串时间转化为Datetime时,毫秒数发生变化
- 带武器的格斗游戏,武器带回血
- [javaSE] 多线程(守护线程)
- 使用jclouds访问openstack的nova
- 开篇,话说盘古开天地,写博客的原由
- "插入排序"算法-之通俗易通图文+代码详解
- composer+laravel框架快速生成项目
- chrome使用技巧(看了定不让你失望)
- 图像处理方向就业前景
- 项目41--排序函数模板
- bzoj 4361: isn
- 第七届山东省Acm程序设计竞赛赛后总结
- Weex Workshop 挑战赛,等你来战!
- 如何验证一个地址可否使用—— MmIsAddressValid函数分析
- pagefile.sys and heberfil.sys
- [Android] Fragment 完全解析
- 利用composer快速建立laravel开发项目
- BZOJ 3669 【NOI2014】 魔法森林