40个字符组成的字符串,找出所有的回文子串。
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class _211317020210刘杰 {
private static boolean PalindromeInformation(String information)
{
int left=0,right=information.length()-1;
boolean flag=true;
while(left<right)
{
if(information.charAt(left) !=information.charAt(right))
{
flag=false;
break;
}
left++;
right--;
}
return flag;
}
public static void main(String[] args) {
try (// TODO 自动生成的方法存根
Scanner scanner = new Scanner(System.in)) {
char[] characterArray=new char[40];
int k=0;
String line = scanner.nextLine();
for(k=0;k<40&&k<line.length();k++)
characterArray[k]=line.charAt(k);
while(k<40)
{
line = scanner.nextLine();
for(int i=0;i<line.length();i++)
{
characterArray[k++]=line.charAt(i);
if(k==40)
break;
}
}
System.out.println("获取的信息是:"+Arrays.toString(characterArray));
HashSet<String> sites = new HashSet<String>();//去掉重复的
for(int i=1;i<=40;i++)// 长度从1到40
{
char[] cArray=new char[i];
for(int j=0;j<=40-i;j++)
{
for(int l=j,t=0;l<i+j;l++,t++)
cArray[t]=characterArray[l];
String string= new String(cArray);//字符数组转字符串
if( string.length()==1 || PalindromeInformation(string))
sites.add(string);
}
}
System.out.println("回文串有:");
System.out.println(sites);
Set<String> treeSet = new TreeSet<String>(sites);
System.out.println("已排序的元素\n"+ treeSet);
for (String i : treeSet) {
System.out.println(i);
}
}
}
}