猿问

编写一个方法,找出一个字符串中最长的回文子串(用java)

Sercet0
浏览 3008回答 1
1回答

雪舞蔷薇

package com.glw.ceshi;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();//reverse()函数是让字符串反过来排序  例:12345  使用reverse()后就是 54321                    //因为回文数正着读 和 反着读 一样  所以只需判断 反过来的字符串与原字符串是否相等即可                    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]);    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答