#include<iostream>
#include<string>
using namespace std;
class solution {
public:
string longestPalindrome(string s) {
int before = 0, max = 0, tem, size;
size = s.size();
if(size==1)
return s;
string re;
string::iterator b;
string::iterator p1;
for (int i = size - 1; i > max-1; i--) {
for (before = 0; s.find(s[i], before) != i;) {
b = s.begin() + s.find(s[i], before);
p1 = s.begin() + i;
tem = p1 - b + 1;
for (; b <= p1 && *b == *p1; b++, p1--);
if (b > p1) {
if (tem > max) {
max = tem;
re = s.substr(s.find(s[i],before), max);
}
break;
}
else {
before = s.find(s[i], before) + 1;
}
}
}
return re;
}
};