博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode算法题——最长有效括号
阅读量:3959 次
发布时间:2019-05-24

本文共 2061 字,大约阅读时间需要 6 分钟。

题目

给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。

 

代码实现

【方法一】

public class demo3 {		public static void main(String[] args) {				String string = "()()()()(((((()())()((()()))()()()()()()";		char[] str = string.toCharArray();		String x = "";		int i = 0;		int j = 0;		boolean flag = true;		while(true) {						if(str[i]=='('&&str[i+1]==')') {				if(i==j+1) {					x += String.valueOf(str[i]);				}else {					if(i==0) {						x = x+String.valueOf(str[i]);					}else {						x = x+" "+String.valueOf(str[i]);					}				}				while(true) {					j = i+1;					if(j==str.length-1) {						x += String.valueOf(str[j]);						flag = false;						break;					}					if(str[j]==')'&&str[j+1]=='(') {						x += String.valueOf(str[j]);						i++;						break;					}else {						break;					}						}			}			i++;						if(i==str.length-1||flag==false)				break;					}		int count = 0;		int index = 0;			for(int z=0;z

【方法二】

public class demo{	public static void main(String[] args) {		String string = "()())())()())))()()()()()";		//将字符串转化为字符数组		char[] ch = string.toCharArray();		StringBuffer strB = new StringBuffer();		//由题可知,这个字符串中只有(和);因此整个字符串当你判断时,只有四种可能'(('  '()'  '))'  ')('				for (int i = 0; i < ch.length -1; i++) {					if (ch[i] == '(' && ch[i+1] == ')') {				strB.append("()");//当判断为()时,将strB中插入();			}else if (ch[i] == ch[i+1]){				strB.append("a");//当判断为((  ))时,将strB中插入a			}else{				continue;//最后只有)(这种情况,无用的,因此跳出这个循环			}		}		//将strB转化为String类型		String str = new String(strB);//		System.out.println(str);		//对str进行split("a")		String[] res = str.split("a");//		System.out.println(Arrays.toString(res));//[()(), (), ()(), , , ()()()()()]		//之后的方法就简单了,考虑每一个字符串的长度,最长的则是我们所要的		int max = res[0].length();		for (int i = 1; i < res.length; i++) {						if (max < res[i].length()) {				max = res[i].length();			}		}		System.out.println(max);	}}

 

【方法三】

public class demo{	public static void main(String[] args) {		String str="()))()()";		int length=str.length();		int maxlength=0;		for(int i=0;i
maxlength){ maxlength=count; } } System.out.println("含有效括号的最大子串长度为:"+maxlength); }}

 

转载地址:http://jiazi.baihongyu.com/

你可能感兴趣的文章
Apache FileUpload文件上传组件API解析
查看>>
屏蔽usb的方法- -
查看>>
JSP编程进度条设计
查看>>
精心收集的面试笔试题库,网络上很难找到这么齐全的,推荐给大家
查看>>
教学视频
查看>>
JS操作Cookie详解
查看>>
Java正则表达式详解
查看>>
myeclipse 快捷键
查看>>
对div排序
查看>>
读写blob类型字段
查看>>
js类型转换
查看>>
spring实例化Bean理解
查看>>
Mac下配置JAVA_HOME
查看>>
fedora 安装mp3播放器插件
查看>>
赏心悦目的宏代码
查看>>
理解套接字recv(),send()
查看>>
发一个C++写的跨平台的BlockingQueue
查看>>
Linux TCP/IP协议栈剖析【体系结构篇】
查看>>
游戏开发中预防内存泄露的一些措施
查看>>
以前的文章全部移除了。
查看>>