思路:
1:遍历字符串每个字符。
2:以每次遍历到的字符为中心,不断向两边扩展。奇数就从i开始,偶数i和i+1开始遍历
3:如果两边都是相同的就是回文,不断扩大到最大长度即是以这个字符(或偶数两个)为中心的最长回文子串。
4:我们比较完每个字符为中心的最长回文子串,取最大值即可。
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param A string字符串
* @return int整型
*/
public int getPalindrome(String str,int start,int end){
while(start>=0&& end<str.length() && str.charAt(end) == str.charAt(start)){
start--;
end++;
}
return end - start - 1;
}
public int getLongestPalindrome (String A) {
// write code here
int result = 1;
for(int i = 0;i<A.length();i++){
int max = Math.max(getPalindrome(A,i,i),getPalindrome(A,i,i+1));
result = Math.max(result,max);
}
return result;
}
}