java小编程----给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
生活随笔
收集整理的這篇文章主要介紹了
java小编程----给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.henu;import java.util.Arrays;/*** @author limengdong* @date 2019年7月19日* @classroom 208bigdata* @description:給定一個只包含 '(' 和 ')' 的字符串,找出最長的包含有效括號的子串的長度。* */public class Demo13{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 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);}
}
?
總結
以上是生活随笔為你收集整理的java小编程----给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java基础---System类
- 下一篇: java基础----BigDecimal