<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]);}}
迴文數是左右對稱的,所以我的思路就是用字串來截取並比較一下,如果是迴文數則記錄下來,然後找出最長的。