括号字符串的有效性和最长有效长度
来源:互联网 发布:淘宝卖家可以延长多久 编辑:程序博客网 时间:2024/06/05 10:38
/** * Created by lxw, liwei4939@126.com on 2017/11/1. * 括号字符串的有效性和最长有效长度 */public class bracketsIsValid { public boolean isValid(String str){ if(str == null || str.equals("")){ return false; } char[] chas = str.toCharArray(); int status = 0; for (int i=0; i< chas.length; i++){ if(chas[i] != '(' && chas[i] != ')'){ return false; } if(chas[i] == ')' && --status < 0){ return false; } if(chas[i] == '('){ status++; } } return status == 0; } public int maxLength(String str){ if(str == null || str.equals("")){ return 0; } char[] chas = str.toCharArray(); int[] dp = new int[chas.length]; int pre = 0; int res = 0; for (int i = 1; i < chas.length; i++){ if(chas[i] == ')'){ pre = i-dp[i-1] - 1; if(pre >= 0 && chas[pre] == '('){ dp[i] = dp[i-1] + 2 + (pre > 0 ? dp[pre-1] : 0); } } res = Math.max(res, dp[i]); } return res; } public static void main(String[] args){ bracketsIsValid tmp = new bracketsIsValid(); String str1 = "(())"; System.out.println(tmp.isValid(str1)); String str2 = "()("; System.out.println(tmp.isValid(str2)); System.out.println(tmp.maxLength(str1)); System.out.println(tmp.maxLength(str2)); }}
阅读全文
0 0
- 字符串问题---括号字符串的有效性和最长有效长度
- 括号字符串的有效性和最长有效长度
- 括号字符串的有效性和最长有效长度
- 最长有效括号的长度
- 最长有效括号的长度
- ”最长有效括号的长度“
- 最长有效括号的长度
- 最长有效括号的长度
- 最长有效括号长度
- 在线编程:最长有效括号的长度
- 算法分析: 最长有效括号的长度
- 挑战编程: 最长有效括号的长度
- 最长有效括号的长度问题
- 最长有效括号的长度--英雄会
- 最长有效括号的长度(来自 庞果)
- 最长的有效括号序列长度
- [序]最长有效括号的长度-动态规划--英雄会
- 字符串之括号的有效性
- elasticsearch-5.5.3伪分布式集群开发过程中问题总结
- Go语言条件语句
- webstrom 下面配置和使用scss
- SCI论文检索及论文的主要的获取方式
- 微信jsApi支付备忘
- 括号字符串的有效性和最长有效长度
- 【项目2】--二叉树的遍历递归算法
- bzoj2005: [Noi2010]能量采集
- log4j:ERROR Failed to rename
- js面向对象的几种方式。
- dialog 与statusbar
- LeetCode (Count Primes)
- 题目:要求:执行一个删除语句,当Name列上有相同时,只保留ID这列上值小的
- Maven项目