为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Sercet0 2016-12-07 19:46:14
查看完整描述

1 回答

已采纳
?
雪舞蔷薇

TA贡献51条经验 获得超16个赞


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]);
    }

}

查看完整回答
反对 回复 2016-12-15
  • 1 回答
  • 0 关注
  • 2981 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信