最长回文字串
最长回文子串
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; } }