题目描述:
输入一个字符串,输出该字符串中对称的子字符串的最大长度,比如输入字符串“12213”,由于该
字符串里最长的对称子字符串是“1221”,因此输出为4.
输入描述:
连续的字符串,字符串长度不超过64,只包含数字和字母
输出描述:
最长的对称字符串长度
示例1:
输入
12321abc
输出
5
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
//获取最长对称串的长度
public class Try1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
char []ar=s.toCharArray();
int max=1;
int temp;
for(int i=0;i<ar.length;i++){
temp=solve(ar,i);
if(max<temp) max=temp;
}
System.out.println(max);
}
public static int solve(char []ar,int x){
int max=1;
for(int i=x+1;i<ar.length;i++){
if(isVaild(ar,x,i)){
if(max<i-x+1) max=i-x+1;
}
}
return max;
}
public static boolean isVaild(char ar[],int x,int y){
int size=y-x+1;
for(int i=x;i<x+size/2;i++){
if(ar[i]!=ar[y-i+x]) return false;
}
return true;
}
}