package com.jareny.jave.algorithm.string;
public class LongestPalindrome {
public static void main(String[] args) {
String str = "ababc";
int longestPalindrome = getLongestPalindrome(str);
System.out.println(longestPalindrome);
}
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param A string字符串
* @return int整型
*/
public static int getLongestPalindrome (String A) {
int maxlen = 1;
//以每个点为中心
for (int i = 0; i < A.length() - 1; i++) {
//分奇数长度和偶数长度向两边扩展
maxlen = Math.max(maxlen, Math.max(fun(A, i, i), fun(A, i, i + 1)));
}
return maxlen;
}
public static int fun(String s, int begin, int end) {
//每个中心点开始扩展
while (begin >= 0 && end < s.length() && s.charAt(begin) == s.charAt(end)) {
begin--;
end++;
}
//返回长度
return end - begin - 1;
}
}