最长回文字串
最长回文子串
http://www.nowcoder.com/questionTerminal/b4525d1d84934cf280439aeecc36f4af
import java.util.*;
public class Solution {
public int getLongestPalindrome(String A, int n) {
// write code here
// 特判
int len = A.length();
if(len == 1){
return 1;
}
// 记录最长回文字串的起始位置
int start = 0;
// 记录最长回文字串的长度
int maxLen = 1;
char[] arr = A.toCharArray();
for(int i = 0; i<len-1; i++){
for(int j = i; j<len; j++){
// 如果当前的字符串长度大于当前记录的最长长度,判断该长度是否是回文串,如果是,则更新最大长度和回文串的起始值,如果不是,则跳过;
if(j-i+1 > maxLen && isPalindrome(arr, i, j)){
maxLen = j - i + 1;
start = i;
}
}
}
return maxLen;
}
// 判断是否是回文串
private boolean isPalindrome(char[] arr, int left, int right){
while(left < right){
if(arr[left] != arr[right]){
return false;
}
left++;
right--;
}
return true;
}
}
查看14道真题和解析