题解 | #最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af

思路:
- 初始长度1
- 以i为中心,向两边扩展
- 和中心相等情况(
abbbc) - 左和右相等情况 (
cbabc)
public int getLongestPalindrome (String A) {
int length=A.length();
int left=0;
int right=0;
// 初始长度1
int len=1;
int maxLen=0;
for(int i=0;i<length;i++){
// 以i为中心,向两边扩展
left=i-1;
right=i+1;
// 和中心相等情况(abbbc)
while(left>=0 && A.charAt(left)==A.charAt(i)){
len++;
left--;
}
while(right<length && A.charAt(right)==A.charAt(i)){
right++;
len++;
}
// 左和右相等情况 (cbabc)
while(left>=0 && right<length && A.charAt(left)==A.charAt(right)){
len+=2;
left--;
right++;
}
if(len>maxLen){
maxLen=len;
}
len=1;
}
return maxLen;
}
#题解#
查看12道真题和解析