class Solution {
public:
string longestPalindrome(string s) {
if(size(s)<2) return s;
int i,k,l=1,location;
string a="*";
for(i=0;i<size(s);i++)
a=a+s.substr(i,1)+"*";
for(i=2;i<size(a)-2;i++)
{
k=1;
while(a[i-k]==a[i+k]&&i-k>=1&&i+k<size(a)-1)
{
k++;
}
if(2*k-1>l&&a[i+k]!=a[i-k])
{
l=2*k-1;
location=i-k+1;
}
else if(2*k+1>l&&a[i+k]==a[i-k])
{
l=2*k+1;
location=i-k;
}
}
if(l==1||l==3)
return s.substr(0,1);
else
a=a.substr(location,l);
s="";
for(i=1;i<l;i+=2)
s=s+a.substr(i,1);
return s;
}
};
09-17