[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]); } }
回文是对称。所以我的想法是使用一个字符串截取并比较,假设回文的记录数,然后找出最长。