输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
对整个方法进行分析,如下是分析思路
1.首先,是判断字符串是不是对称字串的方法。
将字符串转换成字符数组。比较对称轴两端是不是相同,如果有不相同元素,那么就返回false
用了array数组的角标,
if(chr[min++]!=chr[max–]) 两端位置逐个比较
2.取字符串的子串,然后逐个判断字串是否是对称的,取出最长的对称字串
package HWday01;
public class HW07 {
//输入一个字符串,判断字符串中最大对称字串的长度
public static void main(String[] args) {
String str="geogle";
System.out.println("===="+MaxSubStr(str));
}
//返回最长对称数组
public static String MaxSubStr(String str){
String substr=""; //空字符串
for(int i=str.length();i>=2;i++){
for(int j=0;j<i-1;j++){
String temp=str.substring(j,i);
if(duiche(temp) && substr.length()<temp.length()){
substr=temp;
}
}
}
return substr;
}
//判断对称方法
public static boolean duiche(String str){
char[] ch=str.toCharArray();
int min=0;
int max=ch.length-1;
while (min<max){
if(ch[min]!=ch[max]){
return false;
}
min++;
max--;
}
return true;
}
}