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