1. 程式人生 > >求一個字符串中的最長回文串(Java)

求一個字符串中的最長回文串(Java)

ann util har ava ner out als false boolean

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

求一個字符串中的最長回文串(Java)