题目描述:对于一个字符串(仅包含小写英文字母),请设计一个高效算法,计算其中最长回文子串的长度。给定字符串 A 以及它的长度 n ,请返回最长回文子串的长度。
示例:
输入:"abcab", 5 返回值:1 输入:"abbba", 5返回值:5
解题思路:采用暴力求解,截取所有可能存在的字符串,判断其是否符合互文
int getLongestPalindrome(string A, int n) {
// write code here
int maxLength=0;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(isPalindrome(A.substr(i,j-i),j-i))
{
if((j-i)>maxLength)
maxLength = j-i;
}
}
}
return maxLength;
}
bool isPalindrome(string A,int n)
{
for(int i=0;i<n/2;i++)
{
if(A[i]!=A[n-1-i])
return false;
}
return true;
}