求一個字符串中的最長回文串(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);
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM