求一个字符串中的最长回文串(Java)

package huiwenchuan;

import java.util.Scanner;

public class Main {
  //判断一个字符串是否为回文串
  public static boolean isHuiWen(String s)
  {
    int len=s.length();
    for(int i=0;i<len/2;i++)
    {
      if(!(s.charAt(i)==s.charAt(len-i-1)))
      {
        return false;
      }
    }
    return true;
  }
  /**
  * 求一个字符串中的最长回文串
  */
  static String maxPalindromeString(String str)
  {
    String maxStr = null;//保存最长回文串
    int len = 0;//保存回文串长度
    int maxLen=0;//保存最长回文串的长度
    for(int i=0;i<str.length();i++)
    {
      for(int j=i+1;j<=str.length();j++)
      {
        String s=str.substring(i, j);
        if(Main.isHuiWen(s))
        {
          len=s.length();
        }
        if(len>maxLen)
        {
          maxLen=len;
          maxStr=s;
        }
        len=0;
      }
    }
    return maxStr;

  }
  public static void main(String[] args) {
    String str;
    Scanner sca=new Scanner(System.in);
    str=sca.next();
    String maxPalStr=maxPalindromeString(str);
    System.out.println(maxPalStr);
  }
}

posted @ 2018-10-13 22:00  深海世界  阅读(2097)  评论(0编辑  收藏  举报