思路:
动态规划 时间复杂度(O^2)
回文的长度可能会出现奇偶数,分两步分别找寻奇偶最大回文字符。
第一步:两个指针,L指向最左边,R指向比L多1,如果指向的字符相等分别向两边扩散继续比较,
如果R-L+1 > max,重新赋值max,因为从0开始所以加1;
第二部:两个指针,因为奇数,L指向最左边,R指向比L多2,如果指向字符相等分别向两边扩散继续比较, R-L+1 > max,重新赋值max.
public int getLongestPalindrome(String A, int n) {
// write code here
int max = 0;
char[] chars = A.toCharArray();
for(int i = 1; i < chars.length; i++){ int L = i - 1; int H = i; for(;L >= 0 && H < n && chars[L] == chars[H];H++,L--){ if(H-L+1 > max){ max = H-L+1; } } L = i-1; H = i+1; for(;L >= 0 && H < n && chars[L] == chars[H];H++,L--){ if(H-L+1 > max){ max = H-L+1; } } } return max; }