最长括号化长度 java
1:求最长括号,
()(()()( 例如,它的最长符合括号化的长度为4
package com.li.huawei; import java.util.Arrays;
import java.util.Stack; public class Question3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String input="()(()()(";
System.out.println(longestValidTokens(input));
}
public static int longestValidTokens(String input) { int[] arr = new int[input.length()];
char[] inputArray=input.toCharArray();
int length=inputArray.length;
if(length==0)
return 0;
int validLength=0;
int maxValidLength=0;
Stack<Character> stack=new Stack<>();
for(int i=0;i<length;i++){
if(inputArray[i]==')')
{
if(stack.isEmpty())
{
validLength=0;
}
else {
char tempPeek=stack.peek();
if(tempPeek=='(')
{
stack.pop();
validLength=validLength+2;
if (i - validLength >= 0) {
arr[i]=arr[i-1]+2+arr[i-validLength]; //动态规划,判断是否和上一个符合括号方案的括号是否相邻。
}else {
arr[i]=arr[i-1]+2;
}
maxValidLength=Math.max(maxValidLength, validLength);
}
else {
validLength=0;
}
}
} else {
stack.push(inputArray[i]);
validLength=0;
}
} Arrays.sort(arr);
System.out.println(arr[arr.length-1]);
return arr[arr.length-1];
} }
算法分析: 例如字符串

1:读取字符'('

到该位置的最长括号长度

2:读取字符')', 进行判断

到该位置的最长括号长度

3:挨个读取'((('

到该位置的最长括号长度

4:读取'(' 。

到该位置的最长括号长度

5:挨个读取'(('

到该位置的最长括号长度。
arr[i]=arr[i-1]+2+arr[i-validLength]; //动态规划,判断是否和上一个符合括号方案的括号是否相邻。
因为((()))是和前面的()是挨着的,所以,它们两个合一块也是符合括号化方案的。 所以应该将两个加在一起。

6:读取'('

到该位置的最长括号长度。

7:读取'('

到该位置的最长括号长度。

8:读取'('

到该位置的最长括号长度。

9:读取')'

到该位置的最长括号长度。

10 求出 数组中最大的值即为该最大化方案个数。
最长括号化长度 java的更多相关文章
- 最长DNA重复序列长度,并输出该序列。 JAVA
1: 最长DNA重复序列长度,并输出该序列. 例如 ATCGTAGATCG,它的最大长度为4,序列为 ATCG. package com.li.huawei; import java.util.S ...
- LongestValidParentheses, 求最长合法括号子串长度-----同类问题ValidParentheses,GenerateParentheses
问题描述:求括号字符串中最长合法子串长度.例如:()((),返回2,而不是4. 算法分析:还是利用栈,和判断合法括号对是一样的. public static int longestValidParen ...
- 滑雪_poj_1088(记忆化搜索).java
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 67987 Accepted: 25013 Description ...
- Latex学习——长竖线及长括号
Latex学习——长竖线及长括号 文章修改中要求把花括号和竖线变长,查了下发现下面的几种方法: 1.花括号“{ }”变长: \$ \left\{... content...... ...
- ✡ leetcode 159. Longest Substring with At Most Two Distinct Characters 求两个字母组成的最大子串长度 --------- java
Given a string, find the length of the longest substring T that contains at most 2 distinct characte ...
- paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较
paip.提高效率---集合的存取括号方式 uapi java python php js 的实现比较 ##java ----------- 在JDK1.7中,摒弃了Java集合接口的实现类,如:Ar ...
- LeetCode: 3_Longest Substring Without Repeating Characters | 求没有重复字符的最长子串的长度 | Medium
题目: Given a . For . 解题思路: 这个题让找一个字符串中具有不重复单词的最长子串的长度,如:ababc,子串为abc,长度为3.有这么几个方法: 方法一: 依赖字符串本身的一些特有函 ...
- ACMDP之最长公共子序列长度—HDU1159
Common Subsequence Problem Description A subsequence of a given sequence is the given sequence with ...
- D - Milk Patterns (出现k次可重复的最长子串的长度)
题目链接:https://cn.vjudge.net/contest/283743#problem/D 题目大意:给你n个数,然后问你出现m次的最长子串的长度. 具体思路:和上一篇博客的内容差不多,这 ...
随机推荐
- MathType公式保存后为什么字体会变化
在使用MathType数学公式编辑器的时候,很多的用户朋友是新手会遇到一些问题,比如,有时我们保存后却发现MathType公式字体变化了,原本的斜体变成了正体,面对这种问题我们该如何解决呢?下面就来给 ...
- JavaScript------自定义string.replaceAll()方法
代码:: 注意:原始的replace()方法只能替换第一个字符串check String.prototype.replaceAll = function (s1, s2) { return this. ...
- CSS-用伪元素制作小箭头(轮播图的左右切换btn)
先上学习地址:http://www.htmleaf.com/Demo/201610234136.html 作者对轮播图左右按钮的处理方法一改往常,不是简单地用btn.prev+btn.next的图片代 ...
- Module 'null' not found异常解决办法
百度原因:是因为在 /WEB_INF/web.xml文件中 <servlet> <servlet-name>ActionServlet</servlet-name ...
- oracle的cursor
oracle的cursor 转自:http://www.cnblogs.com/shengtianlong/archive/2010/12/31/1922767.html 1,什么是游标? ①从表中检 ...
- OC开发_Storyboard——NaviationController简单例子
一个简单的Navigation的例子,demo里面用到了上一个demo的MVC,可以参考下:http://www.cnblogs.com/daomul/p/4426063.html 建立一个Nav其实 ...
- Think PHP递归获取所有的子分类的ID (删除当前及子分类)
递归获取所有的子分类的ID: //递归获取所有的子分类的ID function get_all_child($array,$id){ $arr = array(); foreach($array as ...
- nginx 认证访问web
htpasswd -c /usr/local/nginx/passwd.db huo nginx .conf文件添加↓:
- <select>里动态添加option
因为是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因. 如有冒犯请联系本人,或删除,或标明出处. 因为好的文章,以前只想收藏,但连接有时候会失效,所以 ...
- FZU 2107 Hua Rong Dao(dfs)
Problem 2107 Hua Rong Dao Accept: 318 Submit: 703 Time Limit: 1000 mSec Memory Limit : 32768 KB Prob ...