题解 | #最长回文子串#
最长回文子串
http://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af
模拟 分情况讨论 看代码 很好理解
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param A string字符串
* @return int整型
*/
int getLongestPalindrome(string A) {
// write code here
int len = A.size();
if(len ==0 || len == 1) return len;
int max_len = 1;
for(int i=0;i<len;i++){
// 一种 奇数长度
int j=i,k=i+1;
while(j>=0 && k < len && A[j] == A[k]){
max_len = max_len > k-j+1 ? max_len: k-j+1;
j--;
k++;
}
}
for(int i=0;i<len;i++){
// 一种 偶数长度
int j=i-1,k=i+1;
while(j>=0 && k < len && A[j] == A[k]){
max_len = max_len > k-j+1 ? max_len: k-j+1;
j--;
k++;
}
}
return max_len;
}
};