
image.png
思路:
1:遍歷字符串每個(gè)字符。
2:以每次遍歷到的字符為中心,不斷向兩邊擴(kuò)展。奇數(shù)就從i開始,偶數(shù)i和i+1開始遍歷
3:如果兩邊都是相同的就是回文,不斷擴(kuò)大到最大長(zhǎng)度即是以這個(gè)字符(或偶數(shù)兩個(gè))為中心的最長(zhǎng)回文子串。
4:我們比較完每個(gè)字符為中心的最長(zhǎng)回文子串,取最大值即可。
import java.util.*;
public class Solution {
/**
* 代碼中的類名、方法名、參數(shù)名已經(jīng)指定,請(qǐng)勿修改,直接返回方法規(guī)定的值即可
*
*
* @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;
}
}