题目描述
对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。
给定字符串A以及它的长度n,请返回最长回文子串的长度。
测试样例:
"abc1234321ab",12
返回:7import java.util.*; public class Palindrome { public int getLongestPalindrome(String a, int n) { if(a==null||a.length()==0) return 0; StringBuilder sb = new StringBuilder(); sb.append("#"); for(int j=0;j<n;j++){ sb.append(a.charAt(j)); sb.append("#"); } a = sb.toString(); int max = 0; for(int i = 0;i < a.length();i++){ int count = 1; while(i-count>=0&&i+count<a.length()&&(a.charAt(i-count)==a.charAt(i+count))) { count++; } max = max > count ? max:count; } return max-1; } }