[java面试题]最长的回文字符串中出现确定

时间:2023-03-08 22:03:41
[java面试题]最长的回文字符串中出现确定
<span style="font-family: Arial, Helvetica, sans-serif;">package com.wzw.util;</span>
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List; public class HuiWen {
public static void main(String[] args) throws Exception
{
List<String> result=new ArrayList<String>();
String str="34554343345345";
int len=str.length();
for(int i=0;i<len-2;i++){
for(int j=i;j<len-1;j++){
StringBuffer temp=new StringBuffer(str.substring(i, j+1));
if(!(temp.toString().equals(""))){
String te=temp.toString();
String mp=temp.reverse().toString();
if(te.equals(mp)){
result.add(te);
}
}
}
}
System.out.println("全部的回文数:");
for(int i=0;i<result.size();i++){
System.out.println(result.get(i));
} System.out.println("最长的回文数是:"); int maxnum=result.toArray()[0].toString().length();
int max=0;
for(int j=0;j<result.toArray().length;j++){
if(maxnum<result.toArray()[j].toString().length()){
maxnum=result.toArray()[j].toString().length();
max = j;
}
}
System.out.println(result.toArray()[max]);
}
}

回文是对称。所以我的想法是使用一个字符串截取并比较,假设回文的记录数,然后找出最长。